第一步root用戶登陸shell
首先使用root用戶登陸遠程主機(假定IP地址是)安全
sshroot@bash
這時命令行會出現警告表示這是一個新的地址存在安全風險鍵入yes表示接受而後就應該能夠順利登入遠程主機接着修改root用戶的密碼服務器
passwdless
第二步新建用戶ssh
首先添加一個用戶組(這裏假定爲admin用戶組)測試
addgroupadminspa
而後添加一個新用戶(假定爲bill)命令行
useraddd/home/bills/bin/bashmbillrest
上面命令中參數d指定用戶的主目錄參數s指定用戶的shell參數m表示若是該目錄不存在則建立該目錄接着設置新用戶的密碼
passwdbill
將新用戶(bill)添加到用戶組(admin)
usermodaGadminbill
接着爲新用戶設定sudo權限
visudo
visudo命令會打開sudo設置文件/etc/sudoers找到下面這一行
rootALL=(ALL:ALL)ALL
在這一行的下面再添加一行
rootALL=(ALL:ALL)ALL
billALL=(ALL)NOPASSWD:ALL
上面的NOPASSWD表示切換sudo的時候不須要輸入密碼我喜歡這樣比較省事若是出於安全考慮也能夠強制要求輸入密碼
rootALL=(ALL:ALL)ALL
billALL=(ALL:ALL)ALL
而後先退出root用戶的登陸再用新用戶的身份登陸檢查到這一步爲止是否一切正常
exit
sshbill@
首先肯定本機有SSH公鑰(通常是文件~/ssh/id_rsapub)若是沒有的話使用sshkeygen命令生成一個(可參考我寫的SSH教程)
在本機上另開一個shell窗口將本機的公鑰拷貝到服務器的authorized_keys文件
cat~/ssh/id_rsapub|sshbill@&#;mkdirpssh&&cat>>~/ssh/authorized_keys&#;
#或者在服務器端運行下面命令
echo"sshrsa[yourpublickey]">~/ssh/authorized_keys
而後進入服務器編輯SSH配置文件/etc/ssh/sshd_config
sudocp/etc/ssh/sshd_config~sudonano/etc/ssh/sshd_config
在配置文件中將SSH的默認端口改掉能夠改爲從到之間的任意一個整數(這裏假定爲)
Port
而後檢查幾個設置是否設成下面這樣確保去除前面的#號
Protocol
PermitRootLoginno
PermitEmptyPasswordsno
PasswordAuthenticationno
RSAAuthenticationyes
PubkeyAuthenticationyes
AuthorizedKeysFilessh/authorized_keys
UseDNSno
上面主要是禁止root用戶登陸以及禁止用密碼方式登陸
接着在配置文件的末尾指定容許登錄的用戶
AllowUsersbill
保存後退出文件編輯接着改變authorized_keys文件的權限
sudochmod~/ssh/authorized_keys&&chmod~/ssh/
而後重啓SSHD
sudoservicesshrestart
#或者
sudo/etc/initd/sshrestart
下面的一步是可選的在本機~/ssh文件夾下建立config文件內容以下
Hosts
HostName
Userbill
Port
最後在本機另開一個shell窗口測試SSH可否順利登陸
sshs
第四步運行環境配置
首先檢查服務器的區域設置
locale
若是結果不是en_USUTF建議都設成它
sudolocalegenen_USen_USUTFen_CAUTF
sudodpkgreconfigurelocales
而後更新軟件
sudoaptgetupdate
sudoaptgetupgrade
最後再根據須要作一些安全設置