Linux SSH遠端訪問
SSH
一、OpenSSH伺服器
1. SSH(Secure Shell)協議
- 是一種安全通道協議
- 對通訊資料進行了加密處理,用於遠端管理
2.OpenSSH服務
- 服務名稱:sshd
- 服務端主程式:/usr/sbin/sshd
- 服務端配置檔案:/etc/ssh/sshd_config
3.使用者登入控制
-
禁用root使用者、空密碼使用者
-
限制登入驗證時間、重試次數
-
AllowUsers、DenyUsers
vi /etc/ssh/sshd_config #進入編輯
LoginGraceTime 2m #限定密碼登入的訪問時間
如別人用SSH遠端訪問,2分鐘沒有輸入密碼就
會顯示超時
PermitRootLogin no #不允許root賬號登入,Yes是允許,預設是Yes
MaxAuthTries 6 #最大嘗試密碼的次數是6次,超過6次伺服器會斷開
PermitEmptyPasswords no #不允許空密碼登入
........
AllowUsers jerry admin@61.23.24.25 #白名單
jerry、admin:只允許這2個使用者訪問
61.23.24.25:客戶機的IP
注:AllowUsers 白名單、DenyUsers 黑名單,兩個不能同時使用
3.1白名單專案實施
-
先進ssh
vi /etc/ssh/sshd_config
按大G到檔案的最後一行,小o從游標處所在行之下插入一個新行內容
輸入AllowUsers lisi zhangsan@20.0.0.15客戶機的IP(指定被遠端的客戶機IP地址)
wq儲存退出
2. 重啟sshd服務
systemctl restart sshd #重啟sshd服務
建立白名單允許的訪問的使用者
useradd lisi
passwd lisi
123123
useradd zhangsan
passwd zhangsan
123123
3. 然後去白名單指定的客戶機ip地址的機器上測試是否可以用SSH遠端到本機的賬戶
ssh lisi@20.0.0.14 -p 22 #使用ssh登入要登入的客戶機ip地址
whoami #表示我是誰
exit #登出
3.2黑名單專案實施
-
先進ssh
vi /etc/ssh/sshd_config 改為 DenyUsers lisi@20.0.0.15 #把lisi放入黑名單,20.0.0.15這個客戶機是ssh遠端 不上本機 (20.0.0.14)的lisi賬戶的
-
測試
上面已經把lisi賬戶放入黑名單,用20.0.0.14的ip的客戶機用ssh遠端本機(20.0.0.15)的lisi賬戶 是遠端不上的,連續輸入3次密碼不管是否正確,最後都會返回為客戶機的初始賬戶。
-
客戶機遠端本機登入賬戶,除本機黑名單意外的賬戶,其他賬戶都可以遠端通過
ssh zhangsan@20.0.0.14 #登入20.0.0.14機器的zhangsan賬戶 exit #退出
4.登入驗證方式
登入驗證方式
密碼驗證:核對使用者明、密碼是否匹配
金鑰對驗證:核對客戶的私鑰、服務端公鑰是否匹配
金鑰分為:公鑰與私鑰
公鑰:大家都可以有這個鑰匙,解的是私鑰鎖
私鑰:私鑰解的是公鑰的鎖
-
生成金鑰對的過程
ssh-keygen -t rsa #生成金鑰的方式 ls -lh #只能檢視到沒有加密、沒有隱藏的檔案是可以看到的 ls -lah #可以檢視到加密、隱藏的檔案 cd .ssh/ #進入.ssh目錄 ls -lah #檢視.ssh目錄中的檔案 會生成兩條檔案,第一條是私鑰,第二條是公鑰
- 資料加密
- 傳送方使用接收方的公鑰加密資料
- 接收方使用自已的私鑰解密資料
- 資料加密能保證所傳送資料的機密性
- 數字簽名
- 對原始資料執行HASH演算法得到摘要值
- 傳送方用自已私鑰加密摘要值
- 將加密的摘要值與原始資料傳送給接收方
注:數字簽名保證資料完整性、身份驗證和不可否認
二、使用SSH客戶端程式
1. ssh命令
用途:遠端安全登入、埠選項:-p 22
格式:ssh user@host
ssh root@20.0.0.15
yes
20.0.0.15的root密碼:123456
whoami #檢視本身是誰
ifconfig #檢視本身是哪個IP地址
2. scp命令
用途:遠端安全複製
格式1:scp user@host:file1 file2
格式2:scp file1 user@host:file2
//格式1
echo "abc123" >a.txt #本地生成一個a.txt檔案
scp /root/a.txt root@20.0.0.15:/opt #把本地的root目錄下的a.txt檔案拷貝到使用者
名為root的20.0.0.15ip地址的opt目錄下
2.1. 在20.0.0.15的opt目錄下建立檔案資訊,然後在去20.0.0.14上下載20.0.0.15的檔案
// 格式2
scp root@20.0.0.15:/opt/1 /root #拷貝20.0.0.15上的root賬戶下opt目錄下的1檔案,拷貝
到本機的root目錄下
3. sftp命令
用途:安全FTP上下載
格式:sftp user@host
注:sftp訪問的都是檔案的家目錄
sftp root@20.0.0.15 #登入上20.0.0.15這個使用者的家目錄
3.1. 在伺服器上建立檔案
cd /home/fa #進入家目錄
touch ky07 #建立一個ky07檔案
3.2 在客戶機上測試
sftp fa@20.0.0.15 #sftp訪問20.0.0.15的fa目錄,訪問進去直接進的是fa的家目錄
三、構建金鑰對驗證的SSH體系
-
在客戶機中建立金鑰對
[zhangsan@server2 ~]$ ssh-keygen -t ecdsa Generating public/private ecdsa key pair. Enter file in which to save the key (/home/zhangsan/.ssh/id_ecdsa): #預設儲存位置 Created directory '/home/zhangsan/.ssh'. Enter passphrase (empty for no passphrase): #對金鑰進行設定密碼加密 Enter same passphrase again: #設定金鑰短語,再次輸入密碼,建議設定的時候謹慎 Your identification has been saved in /home/zhangsan/.ssh/id_ecdsa. #私鑰檔案位置 Your public key has been saved in /home/zhangsan/.ssh/id_ecdsa.pub #公鑰檔案位置
-
將公鑰檔案上傳至伺服器
[zhangsan@localhost ~]$ scp ~/.ssh/id_ ecdsa.pub root@172.16.16.22:/tmp 拷貝 公鑰檔案位置 到root使用者ip地址的tmp目錄下
-
在伺服器中匯入公鑰文字
mkdir /home/lisi/.ssh/ #以mkdir的形式建立lisi,lisi是本身存在的 cat /tmp/id_ecdsa.put >> /home/lisi/.ssh/authorized_keys #把公鑰檔案的內容追加到lisi的.ssh目錄的authorized_keys檔案下 tail -1 /home/lisi/.ssh/authorized_keys #檢視檔案內容最後一行
-
客戶端使用金鑰對驗證登入
[zhangsan@localhost ~]$ ssh lisi@172.16.16.22 #登入到lisi的家目錄下 [lisi@localhost ~]$ whoami lisi
專案操作
-
在客戶機上建立使用者
useradd wangwu #建立使用者 passwd wangwu #設定密碼
-
生成金鑰
[root@server1 ~]# su zhangwe #切換到wangwu使用者 [zhangwe@server1 root]$ ssh-keygen -t rsa #生成金鑰的過程 [zhangwe@server1 root]$ ls -lah #檢視,許可權不夠 [zhangwe@server1 root]$ exit #退出
-
新增到組內,提升許可權
sudo /usr/bin/ls -lah #授權 cd /home/wangwu ls -lah #檢視所有檔案包括有密碼的,隱藏的檔案
-
檢視生成的金鑰檔案
-
將公鑰檔案上傳至伺服器
scp id_rsa.pub root@20.0.0.15:/tmp #拷貝公鑰到root使用者的客戶機ip地址是20.0.0.15的 tmp目錄下
- 在伺服器(20.0.0.15)上去檢視
-
把檔案拷貝到使用者lisi上
先建立使用者lisi,目錄
在伺服器上[root@server3 tmp]# useradd lisi #建立使用者 [root@server3 tmp]# mkdir /home/lisi/.ssh #建立目錄 [root@server3 tmp]# cat id_rsa.pub >> /home/lisi/.ssh/authorized_keys #追加檔案內容 [root@server3 tmp]# cat /home/lisi/.ssh/authorized_keys #檢視檔案是否存在
-
測試
客戶機(20.0.0.14)遠端登入伺服器(20.0.0.15)
客戶端使用金鑰對驗證登入ssh lisi@20.0.0.15 #用ssh遠端登入伺服器
相關文章
- 遠端訪問及控制——ssh
- SSH遠端訪問及控制
- 詳解Linux中SSH遠端訪問控制Linux
- linux遠端訪問問題薦Linux
- windows terminal ssh 免密訪問遠端伺服器Windows伺服器
- Linux 遠端 ssh 登入Linux
- Redis遠端訪問Redis
- 威聯通NAS VirtualizationStation 安裝ubuntu配置SSH遠端訪問Ubuntu
- Linux 常見問題 - 拒絕遠端訪問Linux
- 使用frp進行內網穿透,實現ssh遠端訪問Linux伺服器FRP內網穿透Linux伺服器
- TeamViewer遠端訪問View
- Linux中開啟MySQL遠端訪問功能LinuxMySql
- 配置 RAC 節點以便可以使用 SSH 進行遠端訪問
- 基於SSH遠端訪問WSL2(非長期穩定版本)
- Linux下 SSH遠端管理服務Linux
- linux 遠端連線ssh錯誤Linux
- rabbitmq 新增遠端訪問功能MQ
- PostgreSQL 9.6 配置遠端訪問SQL
- [zhuan]linux限制IP訪問sshLinux
- Linux更改SSH遠端登入埠教程Linux
- SSH遠端連線Linux伺服器Linux伺服器
- 遠端連線Kali Linux使用PuTTY實現SSH遠端連線Linux
- 遠端客戶端 訪問 ASM 例項客戶端ASM
- mysql如何允許遠端訪問MySql
- jupyter notebook 遠端訪問
- mysql賬戶新增遠端訪問MySql
- NAS如何實現遠端訪問
- 遠端訪問jupyter notebook
- django:runserver實現遠端訪問DjangoServer
- 遠端登錄檔訪問 (轉)
- Docker 如何開啟遠端訪問Docker
- Git 安全遠端訪問:SSH 金鑰對生成、新增和連線步驟解析Git
- vnc遠端訪問,推薦四款免費又好用的vnc遠端訪問軟體VNC
- [linux]ssh訪問無需密碼Linux密碼
- 訪問jboss上EJB遠端介面問題
- SSH遠端連線 Linux 伺服器教程Linux伺服器
- Linux下配置ssh免密遠端登入Linux
- Linux網路-ssh遠端連線協議Linux協議