當前位置:才華齋>IT認證>Linux認證>

linux配置ssh公鑰認證簡介

Linux認證 閱讀(2.09W)

Linux作業系統誕生於1991 年10 月5 日(這是第一次正式向外公佈時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux核心。下面是關於linux配置ssh公鑰認證簡介,希望大家認真閱讀!

linux配置ssh公鑰認證簡介

  一、生成和匯入KEY

A主機上生成key

$ ssh-keygen -t rsa

$ ls

id_rsa id_

將key匯入到遠端的B主機上,並修改許可權

A主機上操作

$ cat /root/_ | ssh root@遠端服務器ip 'cat - >> ~/_keys'

B主機上操作

$ chmod 600 ~/_keys

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

$ ssh-copy-id -i /root/_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 ~/_rsa

# IdentityFile ~/_dsa

如果出現多臺server 多個私鑰檔案,在client主機上怎麼配置呢?全部追加到 ~/_rsa(或id_dsa)中?經測試,這是行不通的,只有第一個私鑰可以用,後面的都不行。

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

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

2、不同的`主機上使用不同的公鑰時, 這時會有多個不同的私鑰。這就需要為不同的主機指定不同的私鑰檔案,這個配置可以在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 ~/

如上面的配置,預設我們連線所有的主機(除後面給出的10.1.100.*之外的所有主機)時,預設使使用者名稱為www ,即 ssh = ssh -p 22 。當我們連線10.1.100.* 下的所有主機時,預設會使用dev使用者,預設的私鑰會用 ~/ 檔案。同理,可以增加更多配置。