給遠程服務器設置SSH Key免密碼登陸

最近新入手一臺VPS,爲了安全以及遠程鏈接方便,設置成使用SSH Key免密碼登陸。做爲非程序員IT小白,Google了很多教程,按本身的折騰過程,彙總成下面的步驟,做爲之後再搞機的指南。程序員

1.遠程服務器上生成密鑰對

用SSH鏈接遠程服務器後,執行一下命令:安全

ssh-keygen

終端中會出現提示:服務器

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): #輸入生成私鑰文件位置dom

Created directory '/root/.ssh'.ssh

Enter passphrase (empty for no passphrase): #爲私鑰加密ide

Enter same passphrase again:ui

Your identification has been saved in /root/.ssh/id_rsa.加密

Your public key has been saved in /root/.ssh/id_rsa.pub. #生成公鑰文件位置命令行

The key fingerprint is:rest

7c:25:bd:54:f5:fc:60:c0:86:c1:a0:32:7d:8a:80:c4 root@debian

The key's randomart image is:

+--[ RSA 2048]----+

| .o.+..o..|

| o . . o o+ o.|

.......

2.遠程服務器上配製公鑰

要用SSH Key登陸,需將遠程服務器上的公鑰名字改爲authorized_keys。

cd .ssh
mv id_rsa.pub authorized_keys
chmod 600 authorized_keys #修改公鑰爲只有屬主有讀寫權限(安全考慮)
chmod 700 ~/.ssh #修改.SSH目錄爲只有屬主有讀、寫、執行權限(安全考慮)

3.本地電腦上配製私鑰

3.1從遠程服務器上,取回私鑰到本地電腦

仍然SSH鏈接遠程服務器,執行一下命令顯示私鑰文件內容。

cat /root/.ssh/id_rsa

終端中會顯示相似內容:

-----BEGIN RSA PRIVATE KEY-----

Proc-Type: 4,ENCRYPTED

DEK-Info: AES-128-CBC,EA47822BC49A9E56338A99D07084DA38

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

...

-----END RSA PRIVATE KEY-----

在本地電腦新建一文本文件,名字隨便取,不要後綴名。將上面內容複製粘貼到新建的文件中,保存推出。這個文件即是你的私鑰文件,將它放到你想放置的位置,通常放在~/.ssh中。注意,必定要備份。

3.2本地電腦上給私鑰文件從新設置權限

這一步解決的問題實際上是最後才遇到的。當時作好全部配製後,用SSH Key登陸遠程服務器,終端中顯示下面內容:

Permissions 0644 for 'id_rsa' are too open.

It is required that your private key files are NOT accessible by
others.

This private key will be ignored.

就是說本地電腦上的私鑰文件權限太大,被忽略使用。繼續Google之,在本地電腦上執行如下命令,修改私鑰文件的權限。

chmod 0600 id_rsa

OK,這樣就能夠用SSH Key順利登陸了。

4.遠程服務器上修改SSH配製

若是不打算禁止使用SSH+密碼登陸遠程服務器,這一步也可在第2步後進行。

4.1開啓SSH+Key登陸

SSH鏈接遠程服務器,用vi打開SSH的配製文件。

vi /etc/ssh/sshd_config

此時終端中顯示sshd_config配製文件內容。方向鍵移動光標,找到一下兩個參數。

RSAAuthentication no

PubkeyAuthentication no

按鍵盤上I鍵,進入vi的插入模式,將以上兩個參數後的no改成yes(通常默認就是yes不用改)。

4.2關閉SSH密碼登陸

用密碼登陸遠程服務器終歸有風險,有可能被黑客給爆掉,因此最好禁止使用SSH+密碼登陸遠程服務器。

繼續在vi插入模式下移動光標,找到如下參數。

「#」PasswordAuthentication yes

將#刪除,參數後面的yes改成no。而後按ESC鍵推出vi插入模式,接着輸入:進入vi命令行模式,輸入wq,回車保存退出vi。

4.3重啓遠程服務器SSH服務

SSH配製好後,重啓生效。

/etc/init.d/ssh restart

5.用SSH+Key登陸遠程服務器

如今退出以前與遠程服務器的鏈接,再用SSH+密碼鏈接,會提示鏈接被拒絕。

用SSH+Key登陸:

ssh root@xxx.xxx.xxx.xxx -p aaa -i ~/.ssh/id_rsa

xxx.xxx.xxx.xxx:遠程服務器IP

aaa:端口

~/.ssh/id_rsa:本地電腦上私鑰文件地址(按本身的修改)

以上命令鏈接服務器過程當中,終端會提示輸入以前生成密鑰對時,設定的私鑰密碼。

如此,之後鏈接VPS就不用再輸入密碼了。

相關文章
相關標籤/搜索