Linux系統下如何做到SSH免密碼登入(轉)

來源:互聯網
上載者:User

標籤:http   os   ar   使用   sp   檔案   div   on   ad   

A為本地主機(即用於控制其他主機的機器) ;B為遠程主機(即被控制的機器Server), 假如ip為172.24.253.2 ;A和B的系統都是Linux 在A上的命令:# ssh-keygen -t rsa (連續三次斷行符號,即在本地產生了公開金鑰和私密金鑰,不設定密碼)# ssh [email protected] "mkdir .ssh;chmod 0700 .ssh" (需要輸入密碼, 注:必須將.ssh的許可權設為700)# scp ~/.ssh/id_rsa.pub [email protected]:.ssh/id_rsa.pub (需要輸入密碼) 在B上的命令:# touch /root/.ssh/authorized_keys (如果已經存在這個檔案, 跳過這條)# chmod 600 ~/.ssh/authorized_keys  (# 注意: 必須將~/.ssh/authorized_keys的許可權改為600, 該檔案用於儲存ssh用戶端產生的公開金鑰,可以修改伺服器的ssh服務端設定檔/etc/ssh/sshd_config來指定其他檔案名稱)# cat /root/.ssh/id_rsa.pub  >> /root/.ssh/authorized_keys (將id_rsa.pub的內容追加到 authorized_keys 中, 注意不要用 > ,否則會清空原有的內容,使其他人無法使用原有的密鑰登入) 回到A機器:# ssh [email protected] (不要求輸入密碼, 登入成功) 假如在產生金鑰組的時候指定了其他檔案名稱(或者需要控制N台機器,此時你會產生多對密鑰),則需要使用參數-i指定私密金鑰檔案# ssh [email protected] -i /path/to/your_id_rsa   www.2cto.com  scp也是一樣,如:scp -i /root/.ssh/id_rsa  ./xxx 192.168.102.158:/home/wwy/bak 因為預設情況下ssh命令會使用~/.ssh/id_rsa作為私密金鑰檔案進行登入,如果需要串連多台伺服器而又不希望每次使用ssh命令時指定私密金鑰檔案,可以在ssh的用戶端全域設定檔/etc/ssh/ssh_config(或本地設定檔~/.ssh/config, 如果該檔案不存在則建立一份)中增加如下配置IdentityFile /path/to/your_id_rsa.  也可以為每個伺服器指定一個Host配置:   Host 172.24.253.2        IdentityFile /path/to/your_id_rsa  如果串連時出現如下的錯誤:  Agent admitted failure to sign using the key則使用 ssh-add 指令將私鑰 加進來 (根據個人的密匙命名不同更改 id_rsa) 1ssh-add   ~/.ssh/id_rsa 如果能保護好自己的私密金鑰, 這種方法相對在shell上輸入密碼, 要安全一些   www.2cto.com  ######################################################################### 深入一點點: 從表面上簡單的理解一下登入的過程,首先 ssh-keygen -t rsa 命令產生了一個密鑰和一個公開金鑰, 而且密鑰可以設定自己的密碼可以把密鑰理解成一把鑰匙, 公開金鑰理解成這把鑰匙對應的鎖頭,把鎖頭(公開金鑰)放到想要控制的server上, 鎖住server, 只有擁有鑰匙(密鑰)的人, 才能開啟鎖頭, 進入server並控制而對於擁有這把鑰匙的人, 必需得知道鑰匙本身的密碼,才能使用這把鑰匙 (除非這把鑰匙沒設定密碼), 這樣就可以防止鑰匙被了配了(私密金鑰被人複製) 當然, 這種例子只是方便理解罷了,擁有root密碼的人當然是不會被鎖住的, 而且不一定只有一把鎖(公開金鑰), 但如果任何一把鎖, 被人用其對應的鑰匙(私密金鑰)開啟了, server就可以被那個人控制了所以說, 只要你曾經知道server的root密碼, 並將有root身份的公開金鑰放到上面, 就可以用這個公開金鑰對應的私密金鑰"開啟" server, 再以root的身分登入, 即使現在root密碼已經更改! ---------------------------------------------------------------------------------------方法二、安裝sshpass# sudo apt-get install sshpass安裝完成後使用sshpass允許你用 -p 參數指定純文字密碼,然後直接登入遠程伺服器。例如: # sshpass -p ‘你的密碼‘ ssh 使用者名稱@伺服器ip地址   www.2cto.com  用 ‘-p‘ 指定了密碼後,還需要在後面跟上標準的 ssh 串連命令。 Sshd的設定檔/etc/ssh/ssd_config -------------------------------ssh無密碼驗證的情況下向遠程主機發送命令 發送一條:ssh [email protected]_server_ip your_command ssh [email protected]_server_ip “your_command1; your_command2; your_command3”   本文來自於胖鯊魚網

Linux系統下如何做到SSH免密碼登入(轉)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.