天天看點

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登入

設定連接配接會話

CentOS7增加SSH_PUB key登入

重點是登入驗證裡面使用PublicKey,選擇指定的使用者名,剛才導入的密鑰和對應的密鑰密碼即可使用

其他Linux用戶端登入

将私鑰拷貝進到目前作業系統伺服器:my17_rsa

#使用my17_rsa進行登入

[[email protected] .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中

[[email protected] .ssh]# ssh-add

Could not open a connection to your authentication agent.

#如果無法正常識别ssh-agent,可以補充一個操作

[[email protected] .ssh]# eval $(ssh-agent)

Agent pid 7427

#接着可以正常使用了

[[email protected] .ssh]# ssh-add

Enter passphrase for /root/.ssh/id_rsa:

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

[[email protected] .ssh]# ssh [email protected]

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

[email protected]:~#

        但是由于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了。以一個成功的指令結尾

[[email protected] ~]# ssh [email protected]

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

[email protected]:~#

繼續閱讀