CentOS7增加SSH_PUB key登录

CentOS生成秘钥

ssh-keygen -t rsa

        用这个命令生成私钥和公钥,在输入文件名称和密码后,会在当前目录里面生成一个[filename]、[filename].pub文件。其中.pub文件是公钥文件,这个key可以用到任意用户中,如果需要放到root用户放到/home目录下,新建.ssh文件夹,并把自己的key放到authorized_keys上面即可,记得增加相关访问授权,详细命令如下:

ROOT用户

cd ~

mkdir .ssh

echo filename.pub >> ~/.ssh/authorized_keys

chmod 755 ~/.ssh

chmod 644 ~/.ssh/authorized_keys

非ROOT用户

adduser yohoph

cd /home/yohoph

mkdir .ssh

echo filename.pub >> /home/yohoph/.ssh/authorized_keys

chown yohoph.yohoph /home/yohoph/.ssh -R

chown yohoph.yohoph /home/yohoph/.ssh/authorized_keys -644

开启public_key支持

vi /etc/ssh/sshd_config

重点修改配置项

#开启pubkey登录

PubkeyAuthentication yes

#禁用用户名密码登录

PasswordAuthentication no

 

重启服务

service sshd restart

 

查看登录日志

tail /var/log/secure

 

客户端(xshell)登录

 先把上面的私钥下下来,也就是[filename]

工具-->用户密钥管理者-->导入

CentOS7增加SSH_PUB key登录_第1张图片

设置连接会话

CentOS7增加SSH_PUB key登录_第2张图片

 

重点是登录验证里面使用PublicKey,选择指定的用户名,刚才导入的密钥和对应的密钥密码即可使用

其他Linux客户端登录

将私钥拷贝进到当前操作系统服务器:my17_rsa

#使用my17_rsa进行登录

[root@localhost .ssh]# ssh -i my17_rsa [email protected]

Enter passphrase for key 'my17_rsa':

 

如果想去掉-i 使用默认文件,需要将文件存入/home/.ssh/文件中,并将文件命名为id_rsa,这样SSH的时候默认会读这个文件

 

使用ssh-agent免密码登录

 

使用ssh-agent,保存id_rsa密钥到当前会话,下次使用ssh的时候,可以免密码登录。

#将当前的密钥添加到ssh-agent中

[root@localhost .ssh]# ssh-add

Could not open a connection to your authentication agent.

#如果无法正常识别ssh-agent,可以补充一个操作

[root@localhost .ssh]# eval $(ssh-agent)

Agent pid 7427

#接着可以正常使用了

[root@localhost .ssh]# ssh-add

Enter passphrase for /root/.ssh/id_rsa:

Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)

[root@localhost .ssh]# ssh [email protected]

Last login: Thu Jul 26 13:49:53 2018 from 192.168.10.17

root@jmsw-17:~#

 

        但是由于ssh-agent在每次登录的时候都会使用一个新的会话,每次都需要重新add一遍。但是如果这样的话,我们就失去了免密码登录的意义了。这样有两个思路来解决这个问题。1,优化ssh-agent登录方式,去掉每次开新窗口的时候使用一个新的ssh-agent,使用同样的环境变量

 

使用keychain配置免密码登录

 

普通版本的CentOS直接使用yum安装就可以了。

yum install keychain

 

CentOS7下面官方源下并没有这个keychain,需要安装扩展源来安装keychain

rpm -Uvh http://packages.psychotic.ninja/7/base/x86_64/RPMS/psychotic-release-1.0.0-1.el7.psychotic.noarch.rpm

yum --enablerepo=psychotic install keychain

 

添加环境变量

vi ~/.bash_profile

 

使用chain保存private-key。注意:我这次测试的时候发现,chain-key需要带着公钥一起用,一起放到id_rsa旁边,以id_rsa_pub命名即可

#保存id_rsa

keychain $HOME/.ssh/id_rsa

#刷新配置

source $HOME/.keychain/$HOSTNAME-sh

 

添加配置项中,每次进入会话时,自动刷新配置

#passwordless to centos7

/usr/bin/keychain $HOME/.ssh/id_rsa

source $HOME/.keychain/$HOSTNAME-sh

 

结束

 

好了,剩下的就OK了。以一个成功的命令结尾

[root@localhost ~]# ssh [email protected]

Last login: Thu Jul 26 15:11:29 2018 from 192.168.10.1

root@jmsw-17:~#

 

你可能感兴趣的:(运维管理)