ssh 使用密钥验证。
有机器A(192.168.1.155),B(192.168.1.181)。现想A通过ssh免密码登录到B。
A机器配置
- 在A机下生成公钥/私钥对。
[kai@A ~]$ ssh-keygen -t rsa -P ''
-P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
它在/home/kai 下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。
- 把A机下的id_rsa.pub复制到B机下,在B机的.ssh/authorized_keys文件里,我用scp复制。
[kai@A ~]$ scp .ssh/id_rsa.pub kai@192.168.1.181:/home/kai/id_rsa.pub
kai@192.168.1.181's password:
id_rsa.pub 100% 223 0.2KB/s 00:00
由于还没有免密码登录的,所以要输入密码。
B机器配置
#创建ssh验证目录,及公钥验证文件
[kai@A ~]$ mkdir ~/.ssh
[kai@A ~]$ cat id_rsa.pub >> ~/.ssh/authorized_keys
#配置目录及文件的访问权限
[kai@A ~]$ chmod 711 ~/.ssh
[kai@A ~]$ chmod 644 ~/.ssh/authorized_keys
注意各文件的权限
.ssh 目录: 711
id_rsa : 600
authorized_keys: 644
.ssh认证所使用的文件 ~/.ssh/authorized_keys 是在sshd_config 中配置的[一般不用做修改]
[kai@A ~]$ cat /etc/ssh/sshd_config
49 AuthorizedKeysFile .ssh/authorized_keys
ssh 快捷登录配置,只需指定ip或域名 即可登录
[kai@A ~]$ cat ~/.ssh/config
host 192.168.1.181 //使用IP方式
user kai //用户名
hostname 192.168.1.181 //主机地址
port 202 //主机ssh端口
identityfile ~/.ssh/www.baidu.com/id_rsa //验证私钥文件
#登录方式为: ssh 192.168.1.181
host www.baidu.com //使用域名方式
user kai //用户名
hostname 192.168.1.181 //主机地址
port 202 //主机ssh端口
identityfile ~/.ssh/www.baidu.com/id_rsa //验证私钥文件
#登录方式为: ssh www.baidu.com