linux ssh免密登录设置

什么是ssh

SSH是一种网络协议,用于计算机之间的加密登录。
相比传统的账户密码登录,SSH提供了一种更便捷安全的登录方式。

设置思路

本博客中一律以:A电脑为登录机,IP为192.168.1.101,B电脑为被登录机,IP为192.168.1.100,也就是A登录到B是免密的。

  1. 在A电脑生成免密的公钥和私钥
  2. 把A电脑的公钥传到B电脑上
  3. 验证
  4. 总结

1. 生成免密的公钥和私钥

在A电脑上执行以下命令:

1
ssh-keygen -t rsa

一路回车就行
查看家目录下,会生成一个.ssh的隐藏目录:

1
2
[root@localhost ~]# ls -a ~/
. .. anaconda-ks.cfg .bash_history .bash_logout .bash_profile .bashrc .cshrc .ssh .tcshrc .viminfo

在.ssh目录下三个文件:

  • id_rsa : 生成的私钥文件
  • id_rsa.pub : 生成的公钥文件
  • know_hosts : 已知的主机公钥清单

2. 把A电脑的公钥传到B电脑上

在A电脑上执行命令:

1
ssh-copy-id root@192.168.1.100

在跳出的输入框中输入yes
之后需要输入B电脑的登录密码,回车完成
该命令是把本机的公钥直接传到B电脑上的.ssh目录下,自动生成authorized_keys文件,这个文件是用来存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥

3. 验证

现在在A电脑上直接连接B电脑,验证是否需要密码

1
ssh root@192.168.1.100

4. 总结

  1. 实现远程免密登录不需要去被登录机上操作,只需要有其登录密码就行。
  2. 免密的原理:在被登录机上有本机生成的公钥,在本机用私钥去连接远程机,公钥是锁,私钥是钥匙。
  3. 如果有错误,可以把.ssh目录删除在重复以上操作。

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!