SSH免密碼登陸和免ip連接

什么是SSH

SSH(Secure Shell)是一種提供網(wǎng)絡(luò)安全的傳輸協(xié)議。它保證了在網(wǎng)絡(luò)上的數(shù)據(jù)并非明文傳輸,目前使用SSH登錄遠程終端已經(jīng)是通用方式。

SSH登錄時有兩種驗證方式

  1. 基于密碼的安全驗證,它要求用戶在每次登錄服務(wù)器時輸入密碼,服務(wù)器端驗證通過后即登錄成功。
  2. 基于密鑰的安全驗證,客戶端的公鑰會預先保存在服務(wù)器端,當?shù)卿洉r,服務(wù)器端會使用該公鑰做驗證,如果驗證成功,用戶不需輸入密碼即完成登錄。

為了避免每次都輸入密碼這種重復性工作,我們選擇第二種方式進行遠程登錄。

基于密鑰登錄的配置步驟

  1. 在本地終端生成密鑰對。
ssh-keygen // 加密方式默認使用RSA,可以通過 “ssh-keygen -t 加密方式” 指定加密方式

生成過程中會詢問設(shè)置密鑰對的保存位置和打開密碼。按enter鍵使用默認設(shè)置即可。此時會在本地的"~/.ssh"目錄下生成名為id_rsa和id_rsa.pub的私鑰文件和公鑰文件。

  1. 將公鑰字符串copy到遠程服務(wù)器的"~/.ssh/authorized_keys"文件內(nèi)。

方法一:手動復制

// ssh登錄服務(wù)器之后,修改文件:
vi ~/.ssh/authorized_keys
// 將公鑰字符串拷貝到authorized_keys文件

// 如果.ssh目錄尚未建立,需要先創(chuàng)建并且添加權(quán)限
mkdir ~/.ssh
chmod 700 ~/.ssh

// 如果authorized_keys文件是新創(chuàng)建的,需增加讀寫權(quán)限
chmod 600 ~/.ssh/authorized_keys

方法二:通過命令復制(推薦)

ssh-copy-id user@host
  1. 驗證是否設(shè)置成功
ssh username@server-ip

此時應(yīng)該能夠跳過輸入密碼的提示,直接登錄到遠程終端。如果仍然需要輸入密碼,最有可能的原因是上面第三步文件權(quán)限配置的有問題。

配置服務(wù)器別名,使用別名代替ip地址

雖然經(jīng)過上面的配置,我們不用在每次登錄時都輸入密碼。當仍然需要我們輸入用戶名和服務(wù)器ip。有沒有可能把這一步驟也省略呢?答案是肯定的,通過配置服務(wù)器別名的方式,登錄時只需輸入別名即可。

  1. 打開~/.ssh/config文件,添加以下內(nèi)容:
Host server-alias           # server-alias為SSH鏈接的服務(wù)器別名
  HostName server-ip  # 服務(wù)器地址
  Port 22
  User username           # 服務(wù)器端用戶名
  PreferredAuthentications publickey 
  IdentityFile ~/.ssh/id_rsa   # 私鑰地址,默認為 ~/.ssh/id_rsa
  1. 驗證
    以后即可通過以下命令登錄遠程服務(wù)器
ssh server-alias

如果登錄未成功,請仔細檢查每項的配置是否正確。

總結(jié)

經(jīng)過上述配置,有效的簡化了登錄操作,會為我們節(jié)省不少時間。更重要的是,所有底層使用SSH的程序,都因此而簡化了操作步驟。比如:

  1. 用于傳輸文件的scp和rsync命令。只需輸入:
scp file server-alias:/dir
  1. 如果服務(wù)器端上配置了git遠程倉庫,只需輸入:
git clone server-alias:/git-repo

你會發(fā)現(xiàn)除了使用簡易的別名代替了ip地址外,輸入密碼的步驟也被省略掉了!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容