因爲你們比較樸實,將實驗室服務器密碼設置成了程序員都知道的。但最近有些實驗室連續最近出現了非法入侵現象(因爲服務器連的是內網,估計是校內小朋友乾的,太傷心了)。只能採用開啓密鑰認證,禁用密碼登陸。 程序員
相信你們RSA非對稱加密的原理你們都瞭解,這裏就不贅述了。 shell
這裏主要是window下xshell設置方法: 服務器
首先填入你須要鏈接服務器的基本信息。 ssh
下一步: 加密
以後的對話框,點擊下一步,下一步,下一步 spa
選擇RSA加密。 .net
生成祕鑰對,私鑰和公鑰。 code
這裏輸入私鑰的名字和打開私鑰的密碼。 blog
點擊保存公鑰文件(做用能夠看看下圖中的說明),本文保存的文件名爲id_rsa_1024.txt。 ip
將id_rsa_1024.txt 拷貝(如使用xftp,rz等)到須要祕鑰認證的服務器。
登入服務器:
(若是沒有.ssh文件夾)$ mkdir ~/.ssh
$ chmod 700 .ssh
$ cat id_rsa_1024.txt >> ~/.ssh/authorized_keys (id_rsa_1024.txt 是你public key的文件名)
$ rm ~/id_rsa_1024.txt
$ chmod 600 ~/.ssh/*
若是以上步驟不能實現不輸密碼登錄的話,須要檢查sshd服務的Pubkey認證功能是否默認打開
/etc/ssh/sshd_config:
PubkeyAuthentication yes
若是修改後須要要重起你的ssh服務,用ssh –v來顯示詳細的登錄過程.
最後一步:關閉靜態密碼
建議不使用靜態密碼,之後都咱們都使用key登陸,修改以下內容能夠關閉使用密碼認證:
關閉Pam的傳統密碼認證.
PasswordAuthentication選項更改成 no
使用public登陸:
選擇剛纔你跟公鑰配對的私鑰,輸入你設置的打開私鑰的祕密。點擊ok便可登陸。
其餘:使用Export導出你的私鑰給其餘人使用。
其餘人只有使用Import導入便可。
ps:關於兩臺服務器之間如何使用祕鑰登陸,這裏給一個nopasswd腳本。
執行方式 sh nopasswd USER REMOTE_HOST 注:USER 爲另外一臺服務器用戶名 REMOTE_HOST爲另外一臺服務器ip地址。
執行此腳本前,請確認:
本機上已有 id_dsa.pub ,若無。 使用命令 ssh-keygen -t dsa 得到。
遠程機上登陸用戶家目錄下,已經有 .ssh 文件夾,若無建立之。