伺服器間訪問不用密碼的設定

來源:互聯網
上載者:User

伺服器間訪問不用密碼的設定

經常在伺服器程式(指令碼)裡面,或在命令列中,執行ssh,scp命令,會碰到要求密碼的情況,很不方便!

如果在兩台相互信任,其實步驟挺簡單,假設要從主機1上執行,ssh,scp操作。

主機1:host1 使用者1:user1主機2:host2 使用者2:user2

一:在主機1上執行下列操作:

1./home/user1/.ssh/ 目錄下,執行:ssh-keygen –t id_rsa

$ ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/home/user1/.ssh/id_rsa):/home/user1/.ssh/id_rsa already exists.Overwrite (y/n)? yEnter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /home/user1/.ssh/id_rsa.Your public key has been saved in /home/user1/.ssh/id_rsa.pub.The key fingerprint is:12:a5:55:cc:1e:59:34:61:a2:41:ce:92:5a:a8:9d:ed user1@host1
2.一路預設斷行符號,產生id_rsa.pub檔案

3.cat id_rsa.pub >> authorized_keys

二:在主機2上執行下列操作:

1.拷貝主機1上的authorized_keys檔案到/home/user2/.ssh/目錄下。

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwvAv1SKPIkO2ucdmuz13RkVvSuZRKg/FGllbje/a2fDG2AYSdSKQSqe3GO/40YzA3BnVwBEY+cOKbTj9gpVWLf7bi1jZBDokeO3TWdQnzLfOObA4+F3EunwruyqekLTkAEpmoM400ndqmV5VGi1uvRl8gFgVes6pGkZAorzPll7vCCX4DC1R9XK8/VmtLm7Z4egR/UkPoiA9t7u/K3tdjn28DhPSEWnV1ggZZ30DxB14Mtw0+ZjP5joTISFXVBVDxbuUiibuS+2TmjVM3i20Ep1LTfzwFwYBbSGbReRIdowGsCaFK9zs6WIY84SRWR/mvIJOZQhbU1N/dQSnHobICQ== user1@host1
2.更改目錄存取權限:chmod 755 ~/.ssh/

三:最後在主機1上執行:

1. ssh user2@host2

2. scp user2@host2:/var/log/*.* .

就不需要輸入密碼了。

NOTE:

首先ssh-keygen -t rsa命令產生了一個密鑰和一個公開金鑰, 而且密鑰可以設定自己的密碼。可以把密鑰理解成一把鑰匙, 公開金鑰理解成這把鑰匙對應的鎖頭,把鎖頭(公開金鑰)放到想要控制的server上, 鎖住server, 只有擁有鑰匙(密鑰)的人, 才能開啟鎖頭, 進入server並控制。而對於擁有這把鑰匙的人, 必需得知道鑰匙本身的密碼,才能使用這把鑰匙 (除非這把鑰匙沒設定密碼), 這樣就可以防止鑰匙被了配了(私密金鑰被人複製)。當然, 這種例子只是方便理解罷了,擁有root密碼的人當然是不會被鎖住的, 而且不一定只有一把鎖(公開金鑰), 但如果任何一把鎖, 被人用其對應的鑰匙(私密金鑰)開啟了, server就可以被那個人控制了。
所以說, 只要你曾經知道server的root密碼, 並將有root身份的公開金鑰放到上面, 就可以用這個公開金鑰對應的私密金鑰"開啟"server, 再以root的身分登入, 即使現在root密碼已經更改!

如果想控制n個機器, 那就需要n對鑰匙(密鑰和公開金鑰), ssh-keygen命令可以隨意更改鑰匙對的名字, 最好取容易識別的檔案名稱,比如:
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key(/root/.ssh/id_rsa): /root/.ssh/id_rsa_192.168.10.1

......

這樣私密金鑰和公開金鑰的名字分別就是:

id_rsa_192.168.10.1 和 id_rsa_192.168.10.1.pub

然後將 id_rsa_192.168.0.1.pub 檔案的內容, 追加到伺服器的~/.ssh/authorized_keys檔案中,

最後, 在本地用ssh命令的 -i 參數指定本地密鑰, 並登入:
# ssh -i /root/.ssh/id_rsa_192.168.10.1 192.168.10.1

如果密鑰設定了密碼, 就用密鑰的密碼登入, 沒設密碼, 就直接登入進去了。scp也是一樣。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.