您的位置:首页 > 运维架构 > Linux

CentOS配置SSH免密码登录

2018-04-07 16:11 197 查看
SSH 为 Secure Shell 的缩写,是为建立在应用层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,目前Linux中使用的使SSH的升级版SSH2协议。

为什么要配置SSH免密码登录

在使用Linux时,通常会在一台Linux上通过网络SSH到另外一台机器上,想要登录到另外一台Linux机器上进行操作操作就要正确的输入其用户名和密码,才能登录!例如我有两台CentOS,一台主机名是node-1,其IP地址为192.168.100.101,另外一台是node-2,其IP地址是192.168.100.102,现在想要在node-1上通过SSH登录到node-2上,要在node-1上输入下面的命令

ssh root@192.168.100.102




① ssh为固定的命令,意为使用root用户通过SSH协议连接到192.168.100.102

② 第一次建立SSH连接,要输入yes,回车后继续

③ 输入node-2,即192.168.100.102这台Linux的root密码,输入完成回车继续,如果密码输入错误,需要重新输入

④ 密码输入正确,就登录到了node-2上

如果想要退回到node-1这台Linux上,就在命令行上输入exit,就退出node-2,返回到node-1上了



还有一种常见场景就是通过SSH协议,将一台Linux上的文件拷贝到另外一台Linux上,例如:将node-1上的一个文件通过网络拷贝到node-2上,需要使用scp命令,即通过SSH网络协议的远程拷贝。

scp /etc/hosts root@192.168.100.102:/etc


上面的命令是将node-1上/etc目录下的hosts文件拷贝到IP地址为192.168.100.102即的node-2的/etc目录下,如果node-2的/etc目录下有相同名称的文件,那么就覆盖原来的文件



① 输入scp命令进行远程拷贝

② 输入192.168.100.102这台Linux root的密码,密码正确就进行拷贝

但是如果以后频繁的进行SSH登录,远程拷贝,在一台Linux上给另外一台Linux发送SSH指令,每一次都要输入对应Linux的命令就非常的麻烦,为了更加安全和方便,所以可以建立一种信任机制,就是让特定的机器、特定的用户可以不用输入密码就可以登录、远程拷贝、执行SSH命令了。这种信任机制可以通过配置SSH免密码登录实现

配置SSH免密码登录过程

1. 在想要免密码登录到其他Linux的机器上生成一对秘钥,一个公钥,一个私约,例如:node-1想要免登陆到node-2上,那么就先要在node-1上生成一对秘钥

ssh-keygen -t rsa




① 输入生成密码的命令,ssh-keygen命令是生成秘钥,-t是加密类型,rsa是一种加密方式

② 回车继续

③ 回车继续
④ 回车完成



配置完成后,会在当前用户的家目录的.ssh目录生成两个文件,一个是id_rsa即私钥,另一个是id_rsa.pub即公钥。



cat ~/.ssh/id_rsa.pub


使用命令查看一下公钥中的内容

2. 将公钥拷贝到想要远程登录的Linux上,机拷贝到node-2上



ssh-copy-id root@192.168.100.102


① ssh-copy-id命令的功能就是将当前机器的公钥拷贝到后面制定的192.168.100.102的机器上

② 输入192.168.100.102这台机器root的密码,密码正确就执行拷贝

3. 登录到192.168.100.102即node-2上查看公钥的内容是否被拷贝过来

ssh root@192.168.100.102




ls -l ~/.ssh/


① 在使用ssh命令登录到192.168.100.102这台Linux上,发现不用再输入密码了,非常方便,说明信任机制已经建立

② 查看node-2这台Linux家目录的.ssh目录

③ 发现多了一个authorized_keys文件



查看这个文件的内容,发现有一条数据与node-1上的公钥一样

总结:配置SSH免密码登录,首先在第一台机器上生成一对密钥,然后将公钥拷贝给要免登陆的机器上,但是免登陆是单向的,如果想要配置双向免登陆,还有在第二台机器上生成一对密钥,然后将第二台机器的公钥拷贝的第一台,这样就可以双向免密码登录了。除此之外,如果想要免密码登录到自己的机器上,还有将自己的公钥拷贝给自己,也要建立信任机制!

如有疑问或者想获取更多资料请加QQ群:742379320进行交流
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux CentOS