內容提要
- 基本的SSH密碼登錄、SCP文件復制
- SSH密鑰登錄,多臺電腦使用相同的密鑰;以及使用別名替代
user@host
的形式 - SSH登錄配置文件修改,實現SSH登錄加速、禁止密碼登錄、禁止root用戶登錄等。
- 遇到的問題記錄
基礎操作
登錄與文件復制
- SSH密碼登錄:
ssh root@111.111.111.111 #然后根據提示輸入密碼即可
- SSH復制文件(已有會覆蓋):
# scp from to,復制文件夾使用 scp -r # 雙向的 # 比如使用服務器110.110.110.110上的root賬戶將本地當前目錄的jpg復制到服務器的opt目錄下 scp interesting.jpg root@110.110.110.110:/opt # 比如使用服務器110.110.110.110上的root賬戶將服務器opt目錄復制到本地當前目錄的files目錄下 scp -r root@110.110.110.110:/opt files
登錄進階
- 使用密鑰免密登錄
- 多臺電腦使用相同的密鑰
- 使用別名代替臭長臭長的
user@host
- SSH免密登錄:
無法免密登錄,可嘗試修改權限:ssh-keygen # 會在本機~/.ssh目錄下生成密鑰對 ssh-copy-id user@host # 將本地的密鑰添加到服務器對應用戶的可信登錄列表 # 按提示輸入密碼 # 成功后使用對應的服務器賬戶,登錄、復制就都不需要密碼了 ssh user@host # 如果仍需要密碼,一般是.ssh文件夾及其中文件的權限有問題,嘗試下邊的權限策略
cd ~ chmod 700 .ssh cd .ssh chmod 600 authorized_keys chmod 600 id_rsa chmod 644 id_rsa.pub
- 多臺電腦使用相同的密鑰
- 將通過驗證的密鑰文件(上一步生成的密鑰對,id_rsa和id_rsa.pub)備份起來
- 需要登錄服務器的機器,使用備份的文件替換掉自己
~/.ssh
目錄下的對應文件 - 權限無誤,即可成功登錄。權限問題參考上一條。
- 使用別名替代
user@host
為了演示,這里添加兩個賬戶:cd ~/.ssh vim config
之后就可以:Host ali # 別名 HostName 123.123.123.123 # 主機IP User root # 用戶名 IdentitiesOnly yes # 只使用這里的ssh key,設置這個就不用設置下邊的路徑了 IdentityFile ~/.ssh/id_rsa # 設置ssh key的路徑,有些人需要設置這個 Host tencent # 別名 HostName 123.123.123.124 # 主機IP User root # 用戶名 IdentitiesOnly yes IdentityFile ~/.ssh/id_rsa
ssh ali # 參考上邊可知,ali就相當于root@123.123.123.123 scp file ali:/opt # 可以用于文件復制
登錄配置項修改
可實現:禁止密碼登錄(只使用密鑰登錄)、禁止root賬戶登錄(也算一種安全策略)、加速SSH登陸(關掉DNS和GSSAPI查詢)
- 修改服務器上的
/etc/ssh/sshd_config
文件vim /etc/ssh/sshd_config
- 常用參數配置:
-
GSSAPIAuthentication
、UseDNS
,設置為no
可在一定程度上加速SSH登錄,原理自查。 -
PermitRootLogin
,是否允許root用戶登錄,自行添加一個賬戶替代root賬戶,然后可以關閉root用戶登錄,提高安全性。(比如有很多人會掃描IP端嘗試登錄root賬戶。) -
PubkeyAuthentication
,是否允許密鑰登錄,這個當然yes
了,最好是只使用密鑰登錄。 -
PasswordAuthentication
,是否允許密碼登錄,設置了密鑰登錄后最好關閉密碼登錄。
-
- 保存修改,重啟
sshd
服務生效systemctl restart sshd
問題及解決方案
-
Bad owner or permissions on /root/.ssh/config
(詳細解釋參見ServerFault相關問題討論)chmod 600 ~/.ssh/config