本文给各位分享centos设置ssh密码的知识,其中也会对ssh指定密码登录进行解释,都是最近更新的内容,希望对你有所帮助!
本文目录:
- 1、centos7配置ssh
- 2、2019-04-26 CentOS SSH 密码正确,但仍提示“Permission denied”
- 3、centos中使用ssh怎样使用
- 4、以CentOS为例总结如何配置SSH安全访问
- 5、CentOS7 SSH免密码登录和关闭密码登录
- 6、CentOS修改ssh端口号及ssh免密码登录
centos7配置ssh
centos7 dvd镜像自带ssh服务,但是一路配置下来发现没有/.ssh文件夹,需要注意
环境为刚完成安装的崭新centos7
存疑 因为我并没有找到这个文件夹。即使不做这一步也能成功连接ssh
以下是服务器免密码登录,我并没有做,而且与网上其他方法不同,现在这贴出来
服务器免密码登录
将公钥粘贴其中
esc 后输入 :wq 保存退出
完成服务器免密码登录配置
原作者网址

2019-04-26 CentOS SSH 密码正确,但仍提示“Permission denied”
在CentOS 上给新同事添加了账号,但ssh总是提示“Permission denied, please try again.” 现在看一看怎么解决。
1、首先我的账号可以登录,上去看看新账号的用户名和密码是否OK。
检查一切正常,更换密码仍然不能登录。
2、检查SSHD配置,因为我的账号使用key免密登录,新账号现在是用户密码登录,待会他在上载密钥。
查看 /etc/ssh/sshd_config文件,查找这一句, 如果是no的话改成yes
重启sshd
3、检查账号有没有被lock,使用解锁
4、上面都做了,仍然不能登录,最后看一下SElinux,敲sestatus,SElinux状态是enforcing, 修改/etc/selinux/config文件,改成disabled 或permissive
不想重启的话先设一下:
再试下用新账号登录,一切正常了。
centos中使用ssh怎样使用
ssh是linux系统中一个常用的远程管理工具了,比ftp要强大的我,下面小编来给大家在centos中ssh配置方法吧,希望此教程对各位同学会有所帮助。
SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。
传
统的网络服务程序,如FTP、POP和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人
(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据
传给真正的服务器。
而 SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。透过 SSH 可以对所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗。
系统及版本:CentOS release 5.3 (Final)
安装SSH
yum install ssh
启动SSH
service sshd start
设置开机运行
chkconfig sshd on
SSH相关配置文件的修改
首先修改SSH的配置文件。如下:
[root@sample ~]# vi /etc/ssh/sshd_config ← 用vi打开SSH的配置文件
#Protocol 2,1 ← 找到此行将行头“#”删除,再将行末的“,1”删除,只允许SSH2方式的连接
Protocol 2 ← 修改后变为此状态,仅使用SSH2
#ServerKeyBits 768 ← 找到这一行,将行首的“#”去掉,并将768改为1024
ServerKeyBits 1024 ← 修改后变为此状态,将ServerKey强度改为1024比特
#PermitRootLogin yes ← 找到这一行,将行首的“#”去掉,并将yes改为no
PermitRootLogin no ← 修改后变为此状态,不允许用root进行登录
#PasswordAuthentication yes ← 找到这一行,将yes改为no
PasswordAuthentication no ← 修改后变为此状态,不允许密码方式的登录
#PermitEmptyPasswords no ← 找到此行将行头的“#”删除,不允许空密码登录
PermitEmptyPasswords no ← 修改后变为此状态,禁止空密码进行登录
然后保存并退出。(vi保存退出的命令为ZZ)
因为我们只想让SSH服务为管理系统提供方便,所以在不通过外网远程管理系统的情况下,只允许内网客户端通过SSH登录到服务器,以最大限度减少不安全因素。设置方法如下:
[root@sample ~]# vi /etc/hosts.deny ← 修改屏蔽规则,在文尾添加相应行
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
sshd: ALL ← 添加这一行,屏蔽来自所有的SSH连接请求
[root@sample ~]# vi /etc/hosts.allow ← 修改允许规则,在文尾添加相应行
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server.
#
sshd: 192.168.0. ← 添加这一行,只允许来自内网的SSH连接请求
netstat
-tunlp 查看正在运行的端口号!vim /etc/ssh/sshd_config这个文件,这里把#Port
22这个字段前面的#去掉,再把22改成自己要设的端口就行了,然后重启ssh服务。/etc/init.d/sshd
restart假如要限制SSH登陆的IP,那么可以如下做:修改/etc/hosts.deny,在其中加入
sshd:ALL修改:/etc/hosts.allow,在其中进行如下设置:sshd:192.168.0.24这样就可以限制只有
192.168.0.241的IP通过SSH登陆上LINUX机器了
SSH远程连接配置
1.配置IP
#setup
选择 NetWork configuration
选择 Device configuration
选择 eth0
Use DHCP [*] 改 为 [ ] 用空格键将*去除
Static IP 输入 192.168.1.112
Netmask 输入 255.255.255.0
Default gateway IP 输入 192.168.1.1
Primary DNS Server 输入 192.168.1.1
2.改SSH端口
vim /etc/ssh/sshd_config
#Port 22
去#注释 改 22 为 2200(2000以上)
3.重启SSH
/etc/init.d/sshd restart
4.重启网络
service network restart
或
/etc/init.d/network restart
5.查看端口
netstat -lnp|more
6.关防火墙
/etc/init.d/iptables stop
启动SSH
/etc/init.d/sshd start
至此SSH已经可以连接了
输入连接IP
配置相关参数
选择utf-8支持中文显示
自动输入登录用户root
输入用户名后就可以连接到服务器
但是目前我们的SSH连接还需要输入密码,下面将介绍使用密钥进行连接,免去了输入密码的烦恼:
1、在被管理机上生产密钥
[root@localhost ~]# mkdir /root/.ssh
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ##直接回车默认路径
Enter passphrase (empty for no passphrase): ##输入密码短语
Enter same passphrase again: ##重复密码短语
Your identification has been saved in /root/.ssh/id_rsa. ##如果在这里报错是因为SeLinux引起的按照Policy:yum install selinux-policy
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
aa:76:71:1e:51:fe:3b:4c:51:30:b2:90:55:e9:58:7c root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| .ooo+o |
| ...o+.E |
| o.+ o |
| . o o |
| S. . . |
| ..o o |
| .+ . o . |
| ... . + |
| ... . |
+-----------------+
2、putty生产密钥
打开puttygen,如果没有该程序可以到putty官方网站下载。
点击Generate按钮后出现下图,在红框中不断移动鼠标知道密钥生成完成
点击Generate按钮后出现下图,在红框中不断移动鼠标知道密钥生成完成
上面的大红框就是我们生成的公钥、这个公钥用于放在被管理服务器上,而私钥放在自己的机器上。
Key comment是一个备注信息,如果是企业环境那么会有很多的公钥在一台机器上,为了识别的话一般都会根据每个人的自己定义一个备注。
可以使用邮箱或者工号,输入Key comment先复制下公钥,并点击Saved public Key 和 Saved Private Key保存两个密钥
接着打开密钥代理工具pageant.exe(同样可以在putty的官网下载),使用pageant.exe有一个很大的好处,如果你还需要使用putty的其他工具那么他们可以共享密钥验证,而不需要反复去设置密钥。
任务栏的pageant.exe图标右键选择view keys打开下面窗口。
点击Add key添加刚才保存的私钥。
3、被管理机密钥部署
将被管理机上刚才生产的id_rsa.pub复制成authrized.keys
[root@localhost .ssh]# cp id_rsa.pub authrized.keys
[root@localhost .ssh]# chmod 600 authrized.keys ##这一步是必须的,否则连接不上修改vi /root/.ssh/authrized.keys 删除原来的密钥,添加puttygen.exe生产的密钥(也就是前面复制的公钥)
sh-rsa
AAAAB3NzaC1yc2EAAAABJQAAAIEAh+gDpVSNIwBHZvmHS240AoueNHIgDHhczQ/fhiN/IdAQVdh7Ovw2pnJ4sd6so0kqCizsU7FOu2rvaK7vHC3QrrYmeqn94V595pYGLnMCbtEd7ONew47TU8wjtdldbc7liEmkTVIdkCbbrzQa372/u2LSjkldu2BUiXkevlnGNUc=
hellwen.wu
~
~
~
~保存退出。
4、打开putty登录
注意看上图中红色部分,如果你是经常连接这台机器的话建议输入IP并配置要后再Saved Sessions里输入识别名称并点击保存按钮,这样在列表框中就会长期保留该服务器的连接配置。
以CentOS为例总结如何配置SSH安全访问
而为了节省成本或提高性能,不少人的独机和 VPS,都是基于 unmanaged 的裸机,一切都要自己 DIY。这时候,安全策略的实施,就犹为重要。下面这篇文章,我以 CentOS 为例,简单地总结一下如何配置 SSH 安全访问。 Linux SSH 安全策略一:关闭无关端口 网络上被攻陷的大多数主机,是黑客用扫描工具大范围进行扫描而被瞄准上的。所以,为了避免被扫描到,除了必要的端口,例如 Web、FTP、SSH 等,其他的都应关闭。值得一提的是,我强烈建议关闭 icmp 端口,并设置规则,丢弃 icmp 包。这样别人 Ping 不到你的服务器,威胁就自然减小大半了。丢弃 icmp 包可在 iptables 中, 加入下面这样一条: -A INPUT -p icmp -j DROP Linux SSH 安全策略二:更改 SSH 端口 默认的 SSH 端口是 22。强烈建议改成 10000 以上。这样别人扫描到端口的机率也大大下降。修改方法: # 编辑 /etc/ssh/ssh_config vi /etc/ssh/ssh_config # 在 Host * 下 ,加入新的 Port 值。以 18439 为例(下同): Port 22 Port 18439 # 编辑 /etc/ssh/sshd_config vi /etc/ssh/sshd_config #加入新的 Port 值 Port 22 Port 18439 # 保存后,重启 SSH 服务: service sshd restart 这里我设置了两个端口,主要是为了防止修改出错导致 SSH 再也登不上。更改你的 SSH 客户端(例如:Putty)的连接端口,测试连接,如果新端口能连接成功,则再编辑上面两个文件,删除 Port 22 的配置。如果连接失败,而用 Port 22 连接后再重新配置。 端口设置成功后,注意同时应该从 iptables 中, 删除22端口,添加新配置的 18439,并重启 iptables。 如果SSH 登录密码是弱密码,应该设置一个复杂的密码。Google Blog 上有一篇强调密码安全的文章:Does your password pass the test? Linux SSH 安全策略三:限制 IP 登录 如果你能以固定 IP 方式连接你的服务器,那么,你可以设置只允许某个特定的 IP 登录服务器。例如我是通过自己的 登录到服务器。设置如下: # 编辑 /etc/hosts.allowvi /etc/hosts.allow# 例如只允许 123.45.67.89 登录sshd:123.45.67.89 Linux SSH 安全策略四: 使用证书登录 SSH 相对于使用密码登录来说,使用证书更为安全。自来水冲咖啡有写过一篇详细的教程,征得其同意,转载如下: 为CentOS配置SSH证书登录验证 帮公司网管远程检测一下邮件服务器,一台CentOS 5.1,使用OpenSSH远程管理。检查安全日志时,发现这几天几乎每天都有一堆IP过来猜密码。看来得修改一下登录验证方式,改为证书验证为好。 为防万一,临时启了个VNC,免得没配置完,一高兴顺手重启了sshd就麻烦了。(后来发现是多余的,只要事先开个putty别关闭就行了) 以下是简单的操作步骤: 1)先添加一个维护账号:msa2)然后su - msa3)ssh-keygen -t rsa指定密钥路径和输入口令之后,即在/home/msa/.ssh/中生成公钥和私钥:id_rsa id_rsa.pub4)cat id_rsa.pub authorized_keys至于为什么要生成这个文件,因为sshd_config里面写的就是这个。然后chmod 400 authorized_keys,稍微保护一下。5)用psftp把把id_rsa拉回本地,然后把服务器上的id_rsa和id_rsa.pub干掉6)配置/etc/ssh/sshd_configProtocol 2ServerKeyBits 1024PermitRootLogin no #禁止root登录而已,与本文无关,加上安全些#以下三行没什么要改的,把默认的#注释去掉就行了RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keysPasswordAuthentication noPermitEmptyPasswords no7)重启sshd/sbin/service sshd restart8)转换证书格式,迁就一下putty运行puttygen,转换id_rsa为putty的ppk证书文件9)配置putty登录在connection--SSH--Auth中,点击Browse,选择刚刚转换好的证书。然后在connection-Data填写一下auto login username,例如我的是msa在session中填写服务器的IP地址,高兴的话可以save一下10)解决一点小麻烦做到这一步的时候,很可能会空欢喜一场,此时就兴冲冲的登录,没准登不进去:No supported authentication methods available这时可以修改一下sshd_config,把PasswordAuthentication no临时改为:PasswordAuthentication yes 并重启sshd这样可以登录成功,退出登录后,再重新把PasswordAuthentication的值改为no,重启sshd。以后登录就会正常的询问你密钥文件的密码了,答对了就能高高兴兴的登进去。至于psftp命令,加上个-i参数,指定证书文件路径就行了。 如果你是远程操作服务器修改上述配置,切记每一步都应慎重,不可出错。如果配置错误,导致 SSH 连接不上,那就杯具了。 基本上,按上述四点配置好后,Linux 下的 SSH 访问,是比较安全的了。
CentOS7 SSH免密码登录和关闭密码登录
以 Root 用户为例,首先生成一对公钥私钥对:
会提示存放位置,保持默认即可,默认位置:
提示输入密码,最好是输入一个,安全起见,也比较重要。
然后切换到 /root/.ssh 目录下看看是否已经生成了,如果已经有了公钥私钥对,直接把文件拷贝到这个目录即可,在 Windows 下使用 WinSCP 工具,其他使用 scp 命令即可。
接下来,把公钥复制到 authorized_keys 里,不然是没法通过密钥验证的。
接下来,关闭 SSH 密码登录,找到 /etc/ssh/sshd_config 文件,找到 PasswordAuthentication yes 这一行,一般位于倒数几行,把 yes 改为 no。
最后重启 ssh 服务,一般服务器是不需要重启。
CentOS修改ssh端口号及ssh免密码登录
一般ssh的默认端口为22
比如正常使用终端登录局域网电脑
注意是 sshd_config 文件
在#Port 22行去掉#号注释,同时加入想要使用的端口号如 Port 22438
这里保留22端口是为了防止当前无法使用ssh登录
成功返回success
重启防火墙:
成功返回success
查看添加端口是否成功,成功则显示yes,否则为no:
查看本机SELinux状态,如果是关闭则可以跳过此步骤
以下使用semanage操作,没有可以使用以下命令安装:
以下命令为查看当前SELinux允许的ssh端口:
添加22438端口到SELinux,并确认
测试新端口ssh连接
可以正常登录即成功
将之前开放的Port 22一行注释掉并保存
然后重启ssh
使用以下命令无法登录服务器
本机终端输入:
配置相关全部直接回车
在~/.ssh/目录下生成两个文件
在本机终端输入:
在本机将认证文件复制到服务器
如果服务器上没有文件夹就新建一个.ssh/文件夹
Enjoy
本文关于centos设置ssh密码和ssh指定密码登录的内容来源于网络,版权归原作者所有,如有侵权,请联系删除!

