创建时间: 2016-06-29
最近修改时间: 2016-06-29因本人水平有限,文章中存在不足,错误之处,还望指正
在日常操作中,我们经常需要在远程linux主机中使用ssh进行操作。来回输入用户名,密码变得非常繁琐,我们希望在操作中减少用户名,密码输入的过程,这是我们就可以使用ssh来实现免密码登录。
有兴趣的可以自行搜索基于密钥的安全验证了解更多知识
步骤
实验环境
Client: RedHat 6.3
Server: RedHat 6.3
以本地主机作为客户端client(192.168.15.7),远程主机作为服务器端server(192.168.15.4),下面来实现用ssh实现client免密码登录server的操作(或者说本地主机为A,远程主机为B,A免密码登录主机B):
1、本地生成公私钥对
2、将公钥上传至远程主机用户目录下的.ssh/目录下,如/home/user/.ssh,并修改名称为 authorized_keys
3、修改用户home目录下的.ssh/和.ssh/authorized_keys权限,.ssh/一般为700,.ssh/authorized_keys为600
4、修改server端sshd服务配置文件/etc/ssh/sshd_config,设置为允许使用密钥验证登录,然后重启服务
5、验证是否可以使用密钥登录了
# 在本地主机生成公私钥对
# client
ssh-keygen -t rsa -P ''
# 复制公钥到远程主机(192.168.15.4)
# client
scp ~/.ssh/id_rsa.pub c@192.168.15.4:~/
# 将公钥重命名为authorized_keys,并放在~(用户home目录)下
# server
mkdir -m 700 ~/.ssh/
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
请务必注意authorized_keys文件的权限:600
# 编辑服务端sshd的配置文件,设置为允许使用密钥验证方式登录
# server
# vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# 重启sshd服务使配置生效
# server
service sshd restart
# 待sshd服务重启完成后,接下来就可以进行登录验证了
# client
# 看看是否还是要输入密码呢
ssh user@host_name