Linux系统 免密ssh登录配置及解释说明

一、在需要登录的源机器上生成密钥

(比如从A登录到B和C,就需要在A源机器上生成密钥,然后把公钥文件内容,复制到B和C目标机器上)

(这就好比公司的指纹锁,你需要把你的指纹录入进去,下次进入的时候只要比对一下你的指纹就可以开门了)

切换到应对账号登录A

执行命令:ssh-keygen -t rsa 回车后生成如下两个文件(注意待生成文件路径~/.ssh/)

 

 可以看到A机器上执行命令:ssh-keygen -t rsa后,在路径~/.ssh/下生成了id_rsa.pub公钥文件,A上的公钥文件的内容复制添加到B和C机器的~/.ssh/authorized_keys文件内就可以实现从A免密登录到B和C。

二、目标机器配置

2.1在A机器上执行:cat ~/.ssh/id_rsa.pub,把显示出来的内容复制到B和C机器的~/.ssh/authorized_keys文件内。

 

 2.2在B和C机器上执行:vim ~/.ssh/authorized_keys,把上一步A机器公钥中的内容复制进来,并保存。也可以通过其它方法把文件内容追加进来。

2.3如果是非root用户,就需要在B和C机上修改~/.ssh/authorized_keys权限,如果是root用户就不需要修改权限。

chmod 700  ~/.ssh/authorized_keys

2.4重启ssh服务

/sbin/service sshd restart 

至此就可以实现从A机器免密登录到B和C机器。

三、sshd其他配置

因openssh的版本不一样,sshd服务配置文件也存在差异

像很多人写的配置方法里面需要配置,RSAAuthentication yes ,PubkeyAuthentication yes ,这两项,我这边都没有开启也是正常可以免密登录。

如果有升级安装过openssh,其中有一项sftp-server配置路径不对,会导某些软件免密登录传输文件失败的问题,

执行:find / -name sftp-server,看路径位置

 

 修改sshd配置文件vi /etc/ssh/sshd_config

找到Subsystem      sftp    /data/openssh/libexec/sftp-server

修改为Subsystem       sftp    /usr/libexec/openssh/sftp-server

保存后,重启sshd服务。

posted @ 2023-01-04 11:31  CNY2022  阅读(2006)  评论(0)    收藏  举报