ssh 无密码登录要使用公钥与私钥。
linux下可以用ssh-keygen生成公钥/私钥对。
有机器A(tom),B(pete)。现想A通过ssh免密码登录到B。
- 以目标账户登录A生成公钥/私钥对。
[tom@v05-dev-env10 ~]$ ssh-keygen -t rsa -P ''
-P '' 就表示空密码,也可以不用-P参数,这样就要三次回车,用-P就一次回车。
该命令将在当前账户.ssh目录下面产生一对密钥,私钥:id_rsa和公钥:id_rsa.pub。
下述命令产生不同类型的密钥
- ssh-keygen -t dsa
- ssh-keygen -t rsa
- ssh-keygen -t rsa1
- 在B机器下建建立文件夹
[pete@localhost ~]$ mkdir ~/.ssh
把A机下的~/.ssh/id_rsa.pub 复制到B机的 ~/.ssh/authorized_keys文件里
[tom@v05-dev-env10 ~]$ scp ~/.ssh/id_rsa.pub pete@10.20.7.190:/home/pete/.ssh/authorized_keys
注意如果之前有authorized_keys这条命令会把文件覆盖
- 在B机器把.ssh文件夹及authorized_keys文件权限,要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效
[pete@localhost ~]$ chmod 700 .ssh
[pete@localhost ~]$ chmod 600 .ssh/authoized_keys
- 在A机器执行ssh登陆B
[tom@v05-dev-env10 ~]$ ssh -l pete 10.20.7.190
网友评论