登錄Linux服務器的方式一般是使用ssh,直接使用密碼登錄既要記憶密碼在輸入過程中又有安全風險。所以本文將提供一個使用公鑰登錄的方式來解決輸入密碼的問題。
首先在mac上生成一個私鑰、公鑰對
首先,請打開終端。可以使用spotlight直接搜索term,就可以點擊應用打開。
打開終端后輸入下面的命令:
$ ssh-keygen -t rsa -b 4096 -C 'test'
# 其中 -t表示加密類型,這里使用rsa
# -b表示加密位數
# -C表示備注信息
一路回車下去可以生成兩個文件,id_rsa和id_rsa.pub文件。其中id_rsa為私鑰文件,需要保存好,被別人獲取的話別人也一樣可以登錄你的服務器。
當然在生成私鑰的過程中,也可以對私鑰增加密碼,那么每次使用私鑰登錄時都需要輸入密碼。
本機放置私鑰位置
將私鑰放到本地home目錄的.ssh
目錄下。若沒有.ssh目錄,則新建一個目錄。
$ mkdir -p /home/test/.ssh
$ cp id_rsa /home/test/.ssh
將公鑰上傳到Linux服務器
首先要確認你要使用公鑰登錄使用的用戶,直接用該用戶使用密碼登錄。
然后新建.ssh和authorized_keys,給authorized_keys文件600權限,給.ssh文件夾700權限
[test@vps ~]$ mkdir -p /home/camash/.ssh
[test@vps ~]$ cd .ssh
[test@vps .ssh]$ touch authorized_keys
[test@vps .ssh]$ chmod 600 authorized_keys
[test@vps .ssh]$ cd ..
[test@vps ~]$ chmod 700 .ssh/
然后在本地mac端口上新開一個term頁簽,使用scp將本地的公鑰文件id_rsa.pub傳送到Linux服務器上。
$ scp id_rsa.pub test@vps:.ssh/
使用cat命令將公鑰追加到authorized_keys文件
[test@vps .ssh]$ cat id_rsa.pub >> authorized_keys
修改sshd_config的配置參數
在Linux服務器上,使用root用戶修改/etc/sshd_config
文件的配置參數。使用以下參數打開公鑰登錄。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
為了增加Linux服務器的安全強度,可以設置以下幾個參數。不過請在確認使用公鑰免密登錄可行后再修改以下的參數。
PermitEmptyPasswords no
PasswordAuthentication no
PermitRootLogin no
Port 12222
配置完成后,就可在Mac上進行登錄測試。
直接使用以下的命令,若一切順利,不使用密碼便可以連接到目標Linux服務器。
$ ssh test@vps
更近一步,若不想輸入用戶或者主機名,還可以使用config給這個訪問增加一個別名
首先,在.ssh下增加一個文件config
$ touch config
在config中按以下內容添加服務器的別名和登錄信息。
$ cat config
Host myvps #別名
HostName vps
Port 12222
User test
IdentityFile ~/.ssh/id_rsa
若要增加新的服務器信息,直接在config另起一段增加以上信息即可。
文件建立完成之后,就可以使用別名的登錄服務器。
$ ssh myvps
Last login: Sun Jan 17 22:31:31 2016 from xxx.xx.xx.xxxx
[test@vps ~]$