標籤: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免密碼登入(轉)