linuxs实现ssh无密码直接登录

版权声明:转载的话请注明原文章地址,谢谢 https://blog.csdn.net/m0_37664906/article/details/80990364

首先你需要知道你想要登录的机器的ip及相应的账户名密码,当然实现这个功能可能不是必须的,但是实现了这个功能之后能够在工作中省去很多比较繁琐的小步骤。

假设你要登录的是192.168.1.100机器上的root用户(两个机器以下分别称为本机和目标机器):

  • 在本机上生成密钥
//-P设置的是本机私钥取消密码 -f设置的是生成的公钥和私钥放的文件路径
ssh -keygen -t rsa -P '' -f ~/.ssh/id_rsa

生成公私钥之后可以在相应目录中看到两个新生成的文件:id_rsa和id_rsa.pub,前者是本机的私钥,后者是本机的公钥。
另外两个新生成的文件:
authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
know_hosts : 已知的主机公钥清单

如果希望ssh公钥生效需满足至少下面两个条件:
1) .ssh目录的权限必须是700
2) .ssh/authorized_keys文件权限必须是600

  • 然后将本机生成的公钥发送到目标机器上( ssh-copy-id -i ~/.ssh/id_rsa.put <romte_ip>)
    发送过后,目标机器该用户家目录下.ssh文件夹中的的authorized_keys的文件最后会多一行新的内容,就是本机的公钥信息了
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.100

当然,如果命令不存在的话需要安装ssh-copy-id 命令:yum -y install openssh-clients

或者也可以通过另一种方式进行:
直接将本机的公钥复制为目标机器的authorized_keys,当然前提是之前没有这个文件,如果有这个文件,就先复制过去然后再将公钥追加到authorized_keys后边即可

scp -p ~/.ssh/id_rsa.pub root@<remote_ip>:/root/.ssh/authorized_keys

之后就可以进行无密码的ssh的操作了,比如登录,比如scp的传输,都不会被讨厌的小密码打断了

猜你喜欢

转载自blog.csdn.net/m0_37664906/article/details/80990364
今日推荐