0. 開啓服務器遠程密碼登錄
# 在服務器root用戶下
vim /etc/ssh/sshd_config
修改這兩項並保存:
PermitRootLogin yes
PasswordAuthentication yes
重啓ssh服務:
service sshd restart
# 或者
/etc/initd.d/sshd restart
1. 使用命令
ssh [email protected]
提示輸入祕密,輸入服務器連接密碼,連接成功!
如果忘記密碼,可以在:雲服務器ECS?實例?更多?密碼/密鑰裏修改密碼。
2. 使用快捷命令
# 進入.ssh目錄
cd .ssh
# 創建config配置文件
vim config
# 配置信息
Host fxx
HostName 10.152.66.168
User root
現在就可以使用ssh fxx
快捷命令登錄了。
提示輸入祕密,輸入服務器連接密碼,連接成功!
3. 使用密鑰連接服務器(推薦)
通過使用證書登錄可以不用輸入密碼,方便快捷。
-
生成密鑰文件
ssh-keygen -t rsa -b 2048 -v -f dataAutoProcess
注: 其連接方式與Git的連接方式基本一致,如果你之前Git生成過用於認證的公鑰、密鑰,切使用默認路徑~/.ssh/id_rsa,注意切換切換路徑、名字,以免覆蓋。
-f 指定文件名,未指定路徑的情況下默認是當前路徑生成。如上爲在.ssh目錄下生成密鑰名爲dataAutoProcess,公鑰名爲dataAutoProcess.pub。
剩下的一路回車就OK。 -
進入到你生成公鑰的目錄,將公鑰推送到遠程服務器
ssh-copy-id -i dataAutoProcess.pub [email protected]
將dataAutoProcess.pub換成你的公鑰名字,[email protected]分別換成你的服務器用戶名和地址,然後輸入密碼即可。
-
測試
# 將你的密鑰修改名字,當然不改也行 mv dataAutoProcess fxx.pem # 使用證書免密登錄 ssh -i fxx.pem [email protected]
或者:
配置config,使用快捷命令登錄?推薦使用# 修改之前配置的.ssh/config文件,添加生成的證書,如下: Host fxx HostName 10.152.66.168 User root IdentityFile /Users/fxx/.ssh/fxx.pem #使用快捷命令一鍵登錄 ssh fxx 連接成功!
-
取消密碼登錄
當你測試你的密鑰可以登錄後,一定要確定可以連接,可以取消密碼登錄方式。
vim /etc/ssh/sshd_config
進入vim編輯器後按
/
進入查找模式,然後粘貼PasswordAuthentication,回車後定位到此處,按i進入insert 模式,放開註釋,並修改爲no。# 修改前: # PasswordAuthentication yes # 修改後: PasswordAuthentication no # 重啓ssh: sudo service ssh restart
4. 保持連接,防止長時間未操作而斷開
通過發送“心跳”信號來維持持續連接,有如下4種方式,任意一種都行
-
服務端修改配置
在/etc/ssh/sshd_config文件最後增加兩個參數後重啓ssh# Server 每隔 60 秒發送一次請求給 Client,然後 Client響應,從而保持連接 ClientAliveInterval 60 # Server發出請求後,客戶端沒有響應得次數達到10,就自動斷開連接 ClientAliveCountMax 10
SSH Server 每 60 秒就會自動發送一個信號給 Client,而等待 Client 迴應,如果客戶端沒有迴應,會記錄下來直到記錄數超過 ClientAliveCountMax 的值時,纔會斷開連接。
-
客戶端修改配置
在/etc/ssh/ssh_config文件最後增加下面的參數TCPKeepAlive yes # Client每隔 60 秒發送一次請求給 Server,然後 Server響應,從而保持連接 ServerAliveInterval 60 # Client發出請求後,服務器端沒有響應得次數達到3,就自動斷開連接 ServerAliveCountMax 3
-
客戶端單獨修改某一臺連接
在~/ssh/config的配置中增加參數Host fxx HostName <your server ip> User root IdentityFile /Users/fxx/.ssh/id_rsa # 以下是需添加的配置 ServerAliveInterval 60 ServerAliveCountMax 3
-
直接用命令
ssh -o TCPKeepAlive=yes -o ServerAliveInterval=300 -o ServerAliveCountMax=3 fxx