我本身用阿里雲的服務器的時候,發現ssh連上之後,一會不用就斷掉了,很是不方便,服務端的系統是ubuntu. 查了些東西,原來能夠去配置服務端的sshd,或者客戶端的ssh,就好了.ubuntu
1,配置服務器端sshd,這樣全部連該服務器的會話都會產生效果服務器
找到網絡
/etc/ssh/sshd_config
添加一行ssh
ClientAliveInterval 30
這樣server端每30s就會向client端發送一個keep-alive包, 來保持鏈接測試
還能夠加上一行,指定發送keep-alive包的最大次數阿里雲
ClientAliveCountMax 60
若是發送keep-alive包次數達到60, 而客戶端尚未反應,則server端的sshd斷開鏈接加密
也就是若是什麼都不操做,這個配置可讓鏈接保持30*60s , 30分鐘spa
2,若是沒有服務器權限,能夠配置客戶端ssh,這樣對這個客戶端發起的全部會話都會產生效果code
找到server
/etc/ssh/ssh_config
一樣添加上面跟上面了兩個差很少的參數
ServerAliveInterval
ServerAliveCountMax
這樣就是ssh向服務端sshd發送keep-alive包
3, 也能夠指定某個特定的會話
ssh -o ServerAliveInterval=30 root@192.168.12.192
ssh帶上 -o 參數就能夠以配置文件的參數指定這一次會話, 向上面就會一直保持此次會話.
關於SSH
SSH是Secure Shell的縮寫, 是一個應用層的加密網絡協議, 它不僅能夠用於遠程登陸, 遠程命令執行,還可用於數據傳輸.
固然它由ssh Client和ssh Server端組成, 有不少實現, Ubuntu上就默認安裝的OpenSSH, Client端叫作ssh, Server端叫作sshd. OpenSSH只用來作遠程登陸和命令執行.
1, 把ssh server運行在特殊端口
SSH Server運行的默認端口是22,有時候內部服務器,爲了防止外部嘗試鏈接,會把sshd運行在一個陌生的端口,只對內部開放.
使用 -p
/usr/sbin/sshd -p 2222
或者在sshd配置文件中指定
Port 2222
這時SSH Client去鏈接也須要指定端口
ssh root@192.168.12.192 -p 2222
2,scp使用的是ssh協議
另外咱們常常用的,用做遠程加密文件傳輸的scp (Secure Copy), 就是使用的SSH協議
scp /home/wangyu/file root@192.168.12.192:/srv/
也就是實際上,scp會作爲ssh client先和ssh server肯定傳輸通道, 固然默認也是端口22.
若是服務端的ssh server沒有運行,那scp是沒法鏈接成功的
以下是個人測試
固然若是ssh server運行在特殊指定的端口,那scp也必須去指定這樣的端口
咱們把sshd運行在2222端口,那scp要經過 -P 去指定
scp -P 2222 /home/wangyu/test root@192.168.12.192:/srv/