wiki:waue/sshKeyAuth

Version 4 (modified by waue, 16 years ago) (diff)

--

[簡化設定叢集的登入驗證]

動機? 透過ssh免密碼登入主機來控制,已經是很普遍的一種方式來操控遠端Linux系統,不外乎將對方的public key加入到 authorized_keys,但是遇到網路環境中有大量的電腦需要互相驗證的時候,如在有10個節點的叢集環境中,因為要跑叢集程式,因此程式在每台電腦之間透過ssh運行都要暢行無阻。

以前的作法?

  1. 以第一節點為平台,ssh 登入到第二台,ssh-keygen產生密碼對,登出;再登入到第三台...依此類推。
  2. 在第一節點收集其他電腦的public keys
  3. 把十組public keys內容貼到authorized_keys
  4. 把known_hosts檔與authorized_keys檔scp到其他電腦的.ssh資料夾中

詳細作法可參考:兩小時叢集電腦 編寫 /etc/ssh/ssh_config :

Host *
StrictHostKeyChecking no

執行:

$ cd ~
$ ssh-keygen -t rsa -b 1024 -N "" -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys

改進的作法?

據小澤源所建議,只要在第一節點產生完密鑰對,然後scp -r .ssh到其他台電腦就可以了。以下列出詳細作法:

$ cd ~
$ ssh-keygen -t rsa -b 1024 -N "" -f ~/.ssh/id_rsa
$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ scp -r ~/.ssh/ "其他節點IP_or_HostName":~/

編寫 /etc/ssh/ssh_config :

StrictHostKeyChecking no