面試必備!15 個 SSH 服務器經典問題,助你輕松過關斬將!
SSH(Secure Shell)是Linux系統中最常用的遠程管理工具之一,掌握它是每個運維工程師的必備技能。在面試中,關于SSH服務器的相關問題經常會被問到。本文將列出15個常見的SSH服務器面試題,并提供簡要解答,幫助你在面試中脫穎而出。
為什么要使用SSH 而不是Telnet?
在 ssh 客戶端和服務器之間的通信是加密的,但在 telnet 客戶端和服務器之間的通信是明文。我們還可以說ssh使用公鑰進行身份驗證,而 telnet 不使用任何身份驗證。與telnet相比,ssh 增加了更多的帶寬開銷。ssh 的默認端口是22,telnet 的默認端口是 23。
SSH的默認端口號是什么?如何修改?
SSH的默認端口號是 22。可以通過編輯 /etc/ssh/sshd_config 文件修改端口號。例如,將端口改為 5320:
修改后,需重啟 SSH 服務以使更改生效:
systemctl restart sshd
如何生成 SSH 密鑰對?
使用 ssh-keygen 命令生成 SSH 密鑰對。默認情況下,它會生成 RSA 類型的密鑰:
ssh-keygen -t rsa
生成的密鑰對通常存放在 ~/.ssh/ 目錄下,id_rsa 為私鑰,id_rsa.pub 為公鑰。
如何通過SSH實現免密碼登錄?
免密碼登錄通過SSH公鑰認證實現。步驟如下:
- 在客戶端生成 SSH 密鑰對。
- 將公鑰復制到遠程服務器的 ~/.ssh/authorized_keys 文件中,使用如下命令:
ssh-copy-id user@remote-server
確保 authorized_keys 文件權限正確(通常是 600),并確保 .ssh 目錄的權限為 700。
如何限制特定用戶通過 SSH 訪問服務器?
可以通過編輯 /etc/ssh/sshd_config 文件,使用 AllowUsers 或 DenyUsers 指令。例如,允許特定用戶訪問:
AllowUsers user1 user2
或者拒絕特定用戶訪問:
DenyUsers user3
修改后,重啟 SSH 服務以使更改生效。
如何在linux服務器中禁用root登錄?
編輯文件/etc/ssh/sshd_config, 將PermitRootLogin yes設置為PermitootLogin no,然后重新啟動 ssh 服務。
如何防止 SSH 暴力破解攻擊?
- 修改默認端口。
- 禁用 root 用戶的 SSH 登錄。
- 限制登錄嘗試次數,配置 MaxAuthTries。
- 使用 Fail2Ban 等工具檢測和阻止暴力破解攻擊。
如何使用 SSH 實現文件傳輸?
使用 scp 或 sftp 命令實現文件傳輸。scp 命令用于單次文件或目錄的傳輸,例如:
scp file.txt user@remote-server:/path/to/destination/
sftp 是交互式文件傳輸工具,類似于 FTP,但通過 SSH 加密。
如何配置 SSH 隧道?
SSH隧道分為本地端口轉發和遠程端口轉發。創建本地端口轉發的命令如下:
ssh -L local_port:remote_address:remote_port user@remote-server
創建遠程端口轉發的命令如下:
ssh -R remote_port:local_address:local_port user@remote-server
SSH 隧道可以用于安全地穿透防火墻、加密非安全協議的流量。
SSH登錄時顯示Connection refused可能的原因有哪些?
出現 Connection refused的原因可能包括:
- SSH 服務未啟動或崩潰。
- 防火墻阻止了連接。
- SSH 配置錯誤,例如綁定了錯誤的 IP 地址或端口。
- 網絡問題導致目標服務器無法訪問。
如何禁用 SSH 的反向 DNS 解析?
可以在 /etc/ssh/sshd_config 文件中設置 UseDNS 為 no 以禁用反向 DNS 解析。這有助于加快連接速度,特別是在 DNS 解析慢的網絡環境中。
如何解決SSH連接慢的問題?
SSH連接慢通常是由于DNS反向解析或GSSAPI認證導致的。可以通過在 /etc/ssh/sshd_config 文件中禁用 UseDNS 和 GSSAPIAuthentication 來加速連接。
SSH連接時提示Host key verification failed是什么意思?如何解決?
這個錯誤通常是由于目標服務器的主機密鑰發生變化,導致客戶端不信任它。可以通過刪除 ~/.ssh/known_hosts 文件中相應的主機條目,或直接清空該文件來解決。
如何設置SSH的登錄歡迎信息?
可以通過編輯 /etc/motd 文件來設置登錄后的歡迎信息。或者,通過 /etc/issue.net 文件設置登錄前的歡迎信息。
如何查看SSH服務器的版本?
使用 ssh -V 命令可以查看客戶端SSH的版本;要查看服務器SSH的版本,可以在目標服務器上運行 sshd -v。
如果你覺得這些面試題有幫助,不妨收藏起來,以備不時之需。同時,了解和熟悉這些問題的相關配置和命令,也會讓你在實際工作中更加得心應手。