Ads 468x60px

##EasyReadMore##

24 7月, 2015

用 PuTTY 免輸入密碼登入 ssh 伺服器

image
伺服器端:
    1.用 ssh-keygen 指令產生公鑰(id_rsa.pub)跟私鑰(id_rsa)
        ssh-keygen -t rsa
    2. 把"~/.ssh"的檔案權限改成700, 把私鑰(id_rsa)的檔案權限改成600
         chmod 700 ~/.ssh
         chmod 600 ~/.ssh/id_rsa
    3. 建立"~/.ssh/authorized_keys"這個檔案, 並把檔案權限改成600
         touch ~/.ssh/authorized_keys
         chmod 600 ~/.ssh/authorized_keys
    4. 把公鑰(id_rsa.pub)的內容append到authorized_keys中
         cat [id_rsa.pub路徑] >> ~/.ssh/authorized_keys
  客戶端:
    1.下載 PuTTYgen 和 PuTTY
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
    2.把私鑰(id_rsa)載回客戶端後, 用PuTTYgen轉成 PuTTY 支援的格式
        Load -> 輸入私鑰(id_rsa)路徑
        -> Save private key(假設存成id_rsa.ppk)
image
    3.修改 PuTTY 設定
        1.PuTTY 模式 -> Session -> 選擇 Saved Sessions -> Load
        2.Connection -> Data → Auto-login username → 填入 使用者名稱
        3.Connection -> SSH -> Auth -> Browse-> 輸入私鑰(id_rsa.ppk)路徑 -> Session –> Save

image
之後用 PieTTY 或 Putty 登入 ssh 伺服器時就不需輸入密碼了
問題處理:
登入時遇到 Server refused our key
1、.ssh文件夾權限錯
.ssh 以及其父文件夾(root為/root,普通用戶為Home目錄)都應該設置為只有該用戶可寫(比如700)。
以下為原因:
ssh服務器的key方式登錄對權限要求嚴格。對於客戶端: 私鑰必須為600權限或者更嚴格權限(400), 一旦其他用戶可讀, 私鑰就不起作用(如640), 表現為系統認為不存在私鑰
對於服務器端: 要求必須公鑰其他用戶不可寫, 一旦其他用戶可寫(如660), 就無法用key登錄, 表現為:Permission denied (publickey).
同時要求.ssh目錄其他用戶不可寫,一旦其他用戶可寫(如770), 就無法使用key登錄, 表現為:Permission denied (publickey).
2、sshd配置不正確
正確配置方法如下:
vim /etc/ssh/sshd_config
1、找到#StrictModes yes 改成StrictModes no (去​​掉註釋後改成no)
2、找到#PubkeyAuthentication yes 改成PubkeyAuthentication yes (去掉註釋)
3、找到#AuthorizedKeysFile .ssh/authorized_keys 改成AuthorizedKeysFile .ssh/authorized_keys (去掉註釋)
4、保存
5、/etc/init.d/ssh reload 重新加載
https://www.ptt.cc/bbs/EZsoft/M.1285078013.A.C20.html
http://callmepeanut.blog.51cto.com/7756998/1336864

0 意見:

張貼留言

 
Blogger Templates