ssh 是什么?
作為一名開發或者是運維人員一定對linux操作系統不陌生,因為linux是最優秀的操作系統之一,最重要的是開源的,任何人都可以下載安裝使用,且可以隨意修改內核等特點非常受歡迎,下面主要對centos 操作系統作為實例來說明ssh的的各種使用方法,及排錯,centos 是開源linux系統使用最廣泛的服務器操作系統,個人一般都使用Ubuntu linux 操作系統,如果感興趣可以訪問一下網址獲取操作系統鏡像文件。
centos 系統下載:https://mirrors.aliyun.com/centos/8.2.2004/isos/x86_64/
Ubuntu系統下載:[http://www.ubuntu.com/]
在linux中SSH是非常常用的工具,通過SSH客戶端我們可以連接到運行了SSH服務器的遠程服務器上,通過ssh控制服務器,ssh 協議可以定義傳輸數據加密,壓縮提高傳輸速率。默認端口號22,一般都需要修改端口號的默認端口,以提高服務器的安全性。
命令格式: ssh -p port user@ remote_ip
centos 操作系統實例演示
在演示之前一定要有linux操作系統,否則無法測試
首先要是到linux服務器的IP地址,我直接登錄服務器查看IP地址,之后再用xshell,或 Secure CRT 等工具進行遠程登錄,centos 操作系統默認已經啟動sshd 服務器,只需要使用命令加IP地址登錄即可。
獲取IP地址命令:root@localhost ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.195.128 netmask 255.255.255.0 broadcast 192.168.195.255 inet6 fe80::e349:2144:d6f2:f094 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:56:27:00 txqueuelen 1000 (Ethernet) RX packets 95 bytes 10403 (10.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 39 bytes 5210 (5.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
記錄IP地址:192.168.195.128
注意:xshell 輸入連接命令時不需要輸入 -p 22 參數,輸入后會報錯無法登錄成功使用一下命令即可
ssh root@192.168.195.128
在windows 系統上使用xshell 工具進行遠程登錄連接:
回車輸入密碼確認即可登錄:
免密登錄
xshell 免密登錄: 不使用密碼登錄,使用密鑰登錄,需要修改配置文件 sshd_config :
PubkeyAuthentication yes 開啟公鑰認證
AuthorizedKeysFile .ssh/authorized_keys 認證需要讀取的配置文件,里面存放的是生成的公鑰
第一步:打開xshell --->工具----->新建用戶秘鑰向導: 選擇RSA秘鑰類型,否則后期無法登錄,暫時不明原因,點擊下一步
生成公鑰:公鑰主要用于放到遠端服務器上的秘鑰文件
下一步:設置秘鑰信息
圖中:秘鑰名稱:可以修改成自己想要的,默認即可
密碼:123 此密碼:是自己定義一般不要和服務器的登錄密碼重復
確認: 123
下一步:公鑰注冊
公鑰格式:一般選擇 SSH2-OpenSSH
點擊保存文件:將公鑰信息保存到一個位置,我保存到了桌面,點擊完成
導出秘鑰信息:點擊導出,選擇導出位置為桌面,導出時需要輸入上面輸入的密碼123,然后關閉
第二步:將生成的公鑰導入到服務器的配置文件即可
先使用ssh 密碼登錄到服務器:ssh root@192.168.195.128
查看系統中是否有此目錄:[root@localhost ~]# ls -d .ssh .ssh
沒有.ssh 隱藏目錄,需要手動創建,一定要在當前用戶的家目錄下:mkdir /root/.ssh;touch /root/.ssh/authorized_keys
將生成的公鑰復制到:/root/.ssh/authorized_keys
從桌面上找到:id_dsa_1024.pub 用文本編輯器打開,全部復制
vim /root/.ssh/authorized_keys
ssh-dss AAAAB3NzaC1kc3MAAACBALXjUMw9g32obE8jhO8356iFfqXvUivzL4/sBQ2Y0q6lNtz8pQgijB8L/rTWmrhfKRb7Y/VSL4PVXzwvaQ5cQBEhOt/te9gFq5trjl1n0U1BknhhfNyq9b8RIHt6IZmFDydQsxHt+HZwAhDV1Dyxd6wZICKIRsw/r3QdRDeeH2pfAAAAFQCdR0fiSoGBrZB06F6+ximGdBeeJQAAAIBj4hEAMramV85Nmf2zLDaO/Q5pO93e5App6Y59CXqZFc9r/SY/21dhAWG1i2f1ApI8vF0KD9kMBiFHDX5NDrPJ7FQjggd1nNWo1qD3NwerWYM0eW8U3tzhfBNUsFilcBdEHH6v+IoBcmQ3Mmhfu0k+a1baKARdCUkAc4AXbylJDwAAAIBxoHpuR61+q+t34w0/++zs9GTZkMq26JOI9b3kfh/uEGo+Br9lKKr9wM+3CvC6MwPnrzXOZJtP+c1PMw6Cfs62BF3tKOqh6y+gBJWhVeJpglUrMq5D1bEeo2Jzz3moackm5EylQpX5/QM0lkz/MtBTVApxpVUNKnOr5aUWDZL0GA==
:wq
重啟sshd服務:systemctl restart sshd
xshell 秘鑰登錄測試
打開xshell ---->新建
選擇秘鑰配置:點擊確認登錄
ssh 登錄報錯及解決
錯誤1:如果遇到xshell 登錄直接顯示這個界面一般都是服務器的配置文件sshd_config 設置了不允許密碼登錄,只允許密鑰登錄
解決方法:修改配置允許密碼登錄
vim /etc/ssh/sshd_config
找到以下內容改為yes
PasswordAuthentication yes
:wq
重啟服務器:systemctl restart sshd
錯誤2:輸入密碼正確卻無法登錄服務器,是因為sshd 服務配置,不允許root 用戶登錄
vim /etc/ssh/sshd_config
找到一下配置改為yes
PermitRootLogin yes
錯誤3:如果秘鑰無法登錄查看配置,是否有以下兩項并且開啟
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
錯誤4:普通用戶在配置秘鑰登錄時,需要注意:要使用root 權限設置:chmod 700 /home/linux/.ssh
chmod 600 /home/linux/.ssh/authorized_keys, 普通用戶必須設置權限,否則無法登錄,root用戶在centos 操作系統下不需要設置權限,普通用戶需要設置。