linux 公鑰存放路徑,linux配置ssh公鑰認證


抄襲別人一篇ssh認證的內容,感覺可能會用上阿。

在兩台linux主機上由於環境的需要,經常要配置兩台主機之間免密碼登錄,這就要用到key認證,也就是所謂的公私鑰認證。便於理解,我這里指定兩台主機為 A 和 B 。如果A主機想免密碼登錄到B主機上,則A主機上存放私鑰,B 主機上存放公鑰。通過ssh-keygen 命令生成的兩個文件為:公鑰文件 ~/.ssh/id_rsa.pub; 私鑰文件 ~/.ssh/id_rsa 。而B主機上存放公鑰時,需要將id_rsa.pub的內容存放到~/.ssh/authorized_keys 文件內,並且保證權限為600 。

一、生成和導入KEY

A主機上生成key

$ ssh-keygen -t rsa

$ ls

id_rsa id_rsa.pub

將key導入到遠程的B主機上,並修改權限A主機上操作

$ cat /root/.ssh/id_rsa.pub | ssh root@遠程服務器ip 'cat - >> ~/.ssh/authorized_keys'

B主機上操作

$ chmod 600 ~/.ssh/authorized_keys

不過還有更簡單的方法,不需要在B主機上再修改權限 ,而直接將公鑰內容導入到遠程主機上,使用ssh-copy-id命令,如下:

$ ssh-copy-id -i /root/.ssh/id_rsa root@xxx,xxx,xxx,xxx

二、配置sshd_config

配置完key后,需要在sshd_config文件中開啟key認證

$ vim /etc/ssh/sshd_config

PubkeyAuthentication yes //將該項改為yes

修改完成后,通過/etc/init.d/sshd restart 重啟ssh服務重新加載配置。如果想要禁用密碼認證,更改如下項:

$ vim /etc/ssh/sshd_config

UsePAM yes

UserPAM no

更多配置參數及其意義,可以通過man sshd_config 查看。

三、ssh_config及多私鑰配置

sshd_config是一個全局服務端的配置文件(即本機開啟sshd服務的相關配置),而ssh_config則是一個全局客戶端的配置文件。例如,ssh_config中其中兩行就定義了每個用戶下默認私鑰key的路徑:

# IdentityFile ~/.ssh/id_rsa

# IdentityFile ~/.ssh/id_dsa

如果出現多台server 多個私鑰文件,在client主機上怎么配置呢?全部追加到 ~/.ssh/id_rsa(或id_dsa)中?經測試,這是行不通的,只有第一個私鑰可以用,后面的都不行。

在多台server時,可以有兩種解決方案。

1、在不同的主機上,使用相同的公鑰,則這些機器的私鑰也相同。客戶端上只需要配置這一個私鑰就可以登錄所有的主機。

2、不同的主機上使用不同的公鑰時, 這時會有多個不同的私鑰。這就需要為不同的主機指定不同的私鑰文件,這個配置可以在ssh_config中配置(具體可以參看該文件的配置樣例)。當然更多情況下,我們只會在要使用的用戶做個情化的配置,配置文件為~/.ssh/config(該文件不存在時,請創建之),格式如下:

Host xxxx

IdentityFile 私鑰文件名

Port 端口號

User 你登陸xxxx服務器用的賬號

注:這里的配置文件同樣可以參看ssh_config里的配置,也可以通過man ssh_config獲取更多有用信息。

Host *

User www

Port 22

CheckHostIP no

Compression yes

ForwardAgent yes

Host 10.1.100.*

User dev

Port 22

IdentityFile ~/.ssh/dev.key

如上面的配置,默認我們連接所有的主機(除后面給出的10.1.100.*之外的所有主機)時,默認使用戶名為www ,即 ssh 172.20.1.100 = ssh www@172.20.1.100 -p 22 。當我們連接10.1.100.* 下的所有主機時,默認會使用dev用戶,默認的私鑰會用 ~/.ssh/dev.key 文件。同理,可以增加更多配置。

注:出於安全等考慮,一定要將~/.ssh/config文件和 ~/.ssh/key文件的權限設為600 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM