首先我們用ssh命令可以登錄遠(yuǎn)程服務(wù)器
ssh user@liyafeng.net
要每次要輸入密碼,很不方便,我們可以配置ssh證書登錄,每個操作系統(tǒng)都要用戶登錄,比如Window默認(rèn)用戶是Administrator,Linux是root,我們使用命令來為當(dāng)前用戶生成證書
ssh-keygen
下面我們輸入保存的位置:~/.ssh/id_rsa_xxx,這樣我們就為當(dāng)前用戶生成了公鑰文件,和私鑰文件,他們是 ~/.ssh/id_rsa_xxx,~/.ssh/id_rsa_xxx.pub 。
然后我們把公鑰上傳到服務(wù)器,我們可以用sftp命令
sftp user@liyafeng.net
put ~/.ssh/id_rsa_xxx.pub
這樣我們就在服務(wù)器的 ~/目錄下看到id_rsa_xxx.pub,我們要將這個拷貝到服務(wù)器的~/.ssh下,然后將內(nèi)容追加到authorized_keys這個文件中
#移動公鑰
mv id_rsa_xxx.pub .ssh
#追加公鑰內(nèi)容到authorized_keys中
cat id_rsa_xxx.pub>>authorized_keys
然后我們還要確定~/.ssh 和~/.ssh/authorized_keys的權(quán)限,如果非本帳號有authorized_keys文件的讀寫權(quán)限,那么ssh證書認(rèn)證是不起效果的。
#修改權(quán)限
chmod 7 ~/.ssh
chmod 6 ~/.ssh/authorized_keys
下面我們還要保證ssh軟件的配置文件/etc/ssh/sshd_config,要開啟公鑰認(rèn)證功能
vi /etc/ssh/sshd_config
將# RSAAuthentication yes 和# PublicKeyAuthentication yes前面的“#”去掉,然后保存一下,就可以了。
如果我們本地有多個網(wǎng)站的ssh證書,那么我們可以在本地的~/.ssh目錄下新建一個config文件,里面配置每個網(wǎng)站對應(yīng)要使用的私鑰
Host liyafeng.net
HostName liyafeng.net
IdentityFile ~/.ssh/id_rsa_xxx
user username
Host github
HostName github.com
IdentityFile ~/.ssh/id_rsa_github
user username
這樣,我們就可以用ssh liyafeng.net來登錄遠(yuǎn)程服務(wù)器了。