SSH是一個用於安全遠程登錄和執行命令的協議,它的加密技術能夠保護數據傳輸的安全,讓用戶在進行遠程管理時更加放心。本文將從多個方面對使用SSH進行Linux遠程管理進行詳細闡述。
一、SSH的基本操作
1、連接遠程服務器
ssh [用戶名]@[IP地址或域名]
輸入以上命令後,需要輸入賬戶密碼才可登錄。如果已經在本地生成了公私鑰對並將公鑰上傳至服務器,也可以通過以下方式登錄:
ssh -i [私鑰路徑] [用戶名]@[IP地址或域名]
2、執行命令
ssh [用戶名]@[IP地址或域名] [命令]
輸入以上命令後,會遠程執行相應的命令。如果需要以非交互方式執行,可以加上”-n”參數。
ssh -n [用戶名]@[IP地址或域名] [命令]
3、SCP文件傳輸
SCP是一種基於SSH協議的文件傳輸工具,可以將本地文件複製到遠程服務器,也可以將遠程服務器上的文件複製到本地。
將本地文件傳輸到遠程服務器:
scp [本地文件路徑] [用戶名]@[IP地址或域名]:[遠程目錄路徑]
將遠程服務器上的文件傳輸到本地:
scp [用戶名]@[IP地址或域名]:[遠程文件路徑] [本地目錄路徑]
二、SSH的配置和使用技巧
1、配置公鑰免密登錄
為了避免每次登錄都需要輸入密碼,可以將本地公鑰上傳至服務器,實現免密登錄。
先在本地生成公私鑰對:
ssh-keygen -t rsa
將生成的公鑰~/.ssh/id_rsa.pub上傳至服務器的~/.ssh/authorized_keys文件中:
ssh-copy-id [用戶名]@[IP地址或域名]
2、配置SSH別名
在本地的~/.ssh/config文件中添加別名:
Host [別名] Hostname [IP地址或域名] User [用戶名] Port [端口號]
這樣在登錄時就可以使用別名,而不需要輸入完整的服務器信息。
ssh [別名]
3、使用SSH-Agent
SSH-Agent可以避免每次SSH操作都需要輸入密碼,提高SSH的使用效率。
首先在本地啟動SSH-Agent:
eval $(ssh-agent)
然後將私鑰添加至SSH-Agent的密鑰列表中:
ssh-add [私鑰路徑]
三、SSH的安全設置
1、更改SSH默認端口
SSH默認端口為22,容易成為惡意攻擊的目標。可以將SSH端口更改為非默認端口,提高安全性。
在服務器的/etc/ssh/sshd_config文件中更改Port字段,並重啟SSH服務:
Port [新端口號] systemctl restart sshd.service
2、禁用SSH root用戶登錄
為了避免黑客攻擊,應該禁止SSH root用戶登錄,通過管理普通用戶權限來執行相應任務。
在服務器的/etc/ssh/sshd_config文件中更改PermitRootLogin字段為no,並重啟SSH服務:
PermitRootLogin no systemctl restart sshd.service
3、限制SSH遠程登錄IP地址範圍
為了限制SSH遠程登錄的IP地址範圍,可以通過/etc/hosts.allow和/etc/hosts.deny文件進行設置。
在/etc/hosts.allow文件中添加允許登錄的IP地址:
sshd: [允許登錄的IP地址範圍]
在/etc/hosts.deny文件中添加拒絕登錄的IP地址:
sshd: ALL
四、SSH的高級應用
1、在SSH中使用端口轉發
通過SSH在本地主機和遠程主機之間建立的隧道,可以在傳輸數據的同時進行端口轉發。
將遠程服務器的80端口轉發至本地的8080端口:
ssh -L 8080:localhost:80 [用戶名]@[IP地址或域名]
2、通過SSH連接Grafana
Grafana是一個開源的數據可視化平台,可以將監控指標以圖表的形式進行展示。可以通過SSH連接服務器,並啟動Grafana服務,然後在本地瀏覽器中直接訪問Grafana的Web界面。
在服務器中啟動Grafana:
systemctl start grafana-server
然後在本地終端中啟動SSH並進行端口轉發:
ssh -L 3000:localhost:3000 [用戶名]@[IP地址或域名]
接着在本地瀏覽器中訪問http://localhost:3000即可。
總結
SSH作為一種安全遠程登錄和執行命令的協議,具有非常廣泛的應用場景。本文介紹了SSH的基本操作、配置和使用技巧、安全設置以及高級應用,希望對大家了解和使用SSH有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/297427.html