最近在學習用openssh找了不少資料,小有總結,以供你們借鑑
php
安裝和設置 OpenSSH Server安全
Ubuntu下安裝 OpenSSH Server 是無比輕鬆的一件事情,須要的命令只有一條:服務器
sudo apt-get install openssh-serverssh
隨後,Ubuntu 會自動下載並安裝 openssh server,並一併解決全部的依賴關係。當您完成這一操做後,您能夠找另外一臺計算機,而後使用一個 SSH 客戶端軟件(強烈推薦 PuTTy),輸入您服務器的 IP 地址。若是一切正常的話,等一下子就能夠鏈接上了。而且使用現有的用戶名和密碼應該就能夠登陸了。ide
事實上若是沒什麼特別需求,到這裏 OpenSSH Server 就算安裝好了。可是進一步設置一下,可讓 OpenSSH 登陸時間更短,而且更加安全。這一切都是經過修改 openssh 的配置文件 sshd_config 實現的。學習
首先,您剛纔實驗遠程登陸的時候可能會發現,在輸入完用戶名後須要等很長一段時間纔會提示輸入密碼。其實這是因爲 sshd 須要反查客戶端的 dns 信息致使的。咱們能夠經過禁用這個特性來大幅提升登陸的速度。首先,打開 sshd_config 文件:加密
sudo nano /etc/ssh/sshd_configspa
找到 GSSAPI options 這一節,將下面兩行註釋掉:rest
#GSSAPIAuthentication yes #GSSAPIDelegateCredentials noorm
而後從新啓動 ssh 服務便可:
sudo /etc/init.d/ssh restart
再登陸試試,應該很是快了吧
利用 PuTTy 經過證書認證登陸服務器
SSH 服務中,全部的內容都是加密傳輸的,安全性基本有保證。可是若是能使用證書認證的話,安全性將會更上一層樓,並且通過必定的設置,還能實現證書認證自動登陸的效果。
首先修改 sshd_config 文件,開啓證書認證選項:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys
修改完成後從新啓動 ssh 服務。
下一步咱們須要爲 SSH 用戶創建私鑰和公鑰。首先要登陸到須要創建密鑰的帳戶下,這裏注意退出 root 用戶,須要的話用 su 命令切換到其它用戶下。而後運行:
用這個創建密鑰,
http://www.zzbaike.com/wiki/index.php?title=PuTTY/PuttyGen%E4%BB%8B%E7%BB%8D&diff=prev&oldid=70114:
使用openssh
Protocol 2 #只支持SSH2協議
Port <端口號> #修改默認端口號
MaxStartups 5 #同時容許5個還沒有登陸的SSH聯機
MaxAuthTries 3 #最大登陸嘗試次數爲3
ServerKeyBits 1024 #將ServerKey強度改成1024比特
PermitEmptyPasswords no #禁止空密碼進行登陸
ChallengeResponseAuthentication no #禁用s/key密碼
UsePAM no #不經過PAM驗證
PermitRootLogin no #禁止root遠程登陸
PasswordAuthentication no #不容許密碼方式的登陸
RSAAuthentication no #不容許RSA認證,只針對SSH1
PubkeyAuthentication yes #容許公鑰認證
AuthorizedKeysFile .ssh/authorized_keys #保存公鑰的認證文件
UsePrivilegeSeparation yes #用戶權限設置
SyslogFacility AUTH #記錄SSH登陸狀況
LogLevel INFO #記錄等級爲INFO
PrintMotd yes #登陸成功後顯示/etc/motd 文件的內容
PrintLastLog no #不顯示上次登陸信息
Compression yes #是否壓縮命令
KeepAlive yes #防止死鏈接
StrictModes yes #接受鏈接請求前對用戶主目錄和相關的配置文件進行宿主和權限檢查
UseDNS no #不使用DNS反解
AllowUsers <用戶名> #容許經過遠程訪問的用戶,多個用戶以空格分隔
AllowGroups <組名> #容許經過遠程訪問的組,多個組以空格分隔
DenyUsers <用戶名> #禁止經過遠程訪問的用戶,多個用戶以空格分隔
DenyGroups <組名> #禁止經過遠程訪問的組,多個組以空格分隔
2、若是須要限制來路IP的話,能夠修改/etc/hosts.deny和/etc/hosts.allow兩個文件,經過添加sshd:<IP地址或IP段>來限制或容許SSH遠程連接IP。
2、基於密鑰認證的客戶端鏈接
經過命令ssh -i ~/.ssh/<PrivateKeyFileName> <username>@<remote IP>登陸遠程機。
ssh客戶端在登錄服務端時,會把對應的公鑰寫入~/.ssh/known_hosts文件。若是密鑰發生改變,則將~/.ssh/known_hosts文件中對應的一行公鑰刪除,才能用新的私鑰登陸。
PUTTY:將私鑰文件id_rsa拷貝到客戶端,經過PUTTYGEN轉換RSA密鑰,保存私鑰爲ppk格式,最後經過密鑰認證便可登陸遠程系統。
SecureCRT:將私鑰文件id_rsa拷貝到客戶端,在鏈接選項裏把authentication的驗證順序中的PublicKey放到最早的位置,打開PublicKey驗證的properties頁,identity file選擇id_rsa。
3、scp的使用
scp <源主機用戶名>@<源主機名>:<源文件或目錄路徑,多個文件以空格分隔> <目標主機用戶名>@<目標主機名>:<目標文件或目錄路徑>
若是源爲本機的話,則只須要列出文件或目錄路徑便可。
經常使用參數 :
-v 顯示進度
-C 壓縮傳輸選項
-P 指定端口
-4 強行使用 IPV4 地址
-6 強行使用 IPV6 地址
-i 指定私鑰文件路徑
-r 遍歷路徑複製
-l 限制最大傳輸帶寬,單位是Kb/s
都是別人的本身感受有用裁剪組合了