SSH綿密登錄和設置別名

SSH免密登錄

  1. 本機生成SSH私鑰和公鑰
ssh-keygen -t rsa

這樣會在當前目錄生成名爲id_rsa的私鑰文件和名爲id_rsa.pub的公鑰文件,-t表示密鑰類型是rsa. 若是你只輸入ssh-keygen生成的RSA密鑰長度爲2048,若是你對安全性要求比較高能夠指定4096位的長度:linux

ssh-keygen -b 4096 -t rsa

這裏-b就是多少位,固然你對這些參數感興趣可使用--help參數看看具體的含義和解釋。當你在生成SSHKEY的時候在命令行下會提示你Enter file in which to save the key,讓你確認密鑰文件保存的路徑,通常回車便可(通常默認會在當前用戶家目錄下的.ssh目錄下)。第二個提示是 Enter passphrase (empty for no passphrase) 讓你輸入一個密鑰的密碼,若是不輸入則留空;回車生成公私鑰完畢 😃git

此時你可使用cat命令看下本身的公私鑰。github

  1. 服務器配置
  • 方法一:shell

    • 將本地的公鑰文件上傳到服務器上,而後在服務器須要免密登陸的用戶家目錄下查看是否有 ~/.ssh/authorized_keys這個文件,
      若是沒有手動建立一個:
    touch ~/.ssh/authorized_keys
    • 而後咱們將公鑰內容寫入到authorized_keys文件中,由於這個文件可能已經有內容了,因此你可使用以下方式
    cat -n ~/.ssh/rsa.pub ~/.ssh/authorized_keys

    這樣就將公鑰內容追加到authorized_keys中了,而後須要注意配置權限了,不然SSH不會工做的.vim

    1. 將.ssh目錄的權限爲700
    2. 將authorized_keys目錄的權限爲600
  • 方法二:windows

    • ssh-copy-id 複製公鑰
    ssh-copy-id username@remote-server -p prot

    它會將本地的全部公鑰都傳到服務器.安全

  1. 運行使用
ssh user@host -p22

SSH別名登錄

  • 配置本地ssh,修改~/.ssh/config ,沒有config則本身建立
Host yourserverName 		#設置的別名
  HostName xx.xx.xx.xx      #服務器IP
  Port 22   				#端口號
  User username				#登錄用戶名
  IdentitiesOnly yes		#IdentitiesOnly yes固有配置,多個配置則no
  IdentityFile ~/.ssh/id_rsa#對應服務器公鑰的本地私鑰文件路徑,能夠不寫,我不寫也能正常鏈接

常見問題

ssh key Key is invalid服務器

密鑰錯誤,或者配置錯誤ssh

github ssh key Key is invalid. Ensure you’ve copied the file correctly命令行

在github上添加新key時,沒有正確拷貝 ~/.ssh/id_rsa.pub 內容所致。
通常發生在linux下,由於windows下用notepa++打開這個文件並複製通常是沒有問題的,
而linux下使用vim打開再複製就會由於vim添加了回車而致使key添加失敗。

解決辦法是:使用cat命令將 ~/.ssh/id_rsa.pub 內容輸出到終端,再拷貝。


參考資料:

相關文章
相關標籤/搜索