詳解Linux中SSH遠端訪問控制
SSH:是一種安全通道協議,主要用來實現字元介面的遠端登入,遠端複製等功能(使用TCP的22號埠)。SSH協議對通訊雙方的資料傳輸進行了加密處理,其中包括使用者登入時輸入的使用者口令。
在RHEL 5系統中使用的是OpenSSH伺服器由openssh,openssh-server等軟體包提供的(預設已經安裝),並以將sshd新增為標準的系統服務。
SSH提供一下兩種方式的登入驗證:
1、密碼驗證:以伺服器中本地系統使用者的登入名稱,密碼進行驗證。
2、祕鑰對驗證:要求提供相匹配的祕鑰資訊才能通過驗證。通常先在客戶機中建立一對祕鑰檔案(公鑰和私鑰),然後將公鑰檔案放到伺服器中的指定位置。
注意:當密碼驗證和私鑰驗證都啟用時,伺服器將優先使用祕鑰驗證。
SSH的配置檔案:
sshd服務的配置檔案預設在/etc/ssh/sshd_config,正確調整相關配置項,可以進一步提高sshd遠端登入的安全性。
配置檔案的內容可以分為以下三個部分:
1、常見SSH伺服器監聽的選項如下:
Port 22 //監聽的埠為22
Protocol 2 //使用SSH V2協議
ListenAdderss 0.0.0.0 //監聽的地址為所有地址
UseDNS no //禁止DNS反向解析
2、常見使用者登入控制選項如下:
PermitRootLogin no //禁止root使用者登入
PermitEmptyPasswords no //禁止空密碼使用者登入
LoginGraceTime 2m //登入驗證時間為2分鐘
MaxAuthTries 6 //最大重試次數為6
AllowUsers user //只允許user使用者登入,與DenyUsers選項相反
3、常見登入驗證方式如下:
PasswordAuthentication yes //啟用密碼驗證
PubkeyAuthentication yes //啟用祕鑰驗證
AuthorsizedKeysFile .ssh/authorized_keys //指定公鑰資料庫檔案
SSH客戶端命令程式ssh、scp、sftp
通過ssh命令可以遠端登入到sshd服務,為使用者提供一個安全的Shell環境,一遍對伺服器進行管理和維護。使用時指定登入使用者名稱,目標主機作為引數。如下:
當使用者第一次登入SSH伺服器時,必須接受伺服器發來的RSA祕鑰(根據輸入yes)後才能繼續。接受的祕鑰資訊將儲存到“~/.ssh/known_hosts”檔案中。如果預設埠被更改,可以使用-p命令制定埠。
通過scp命令可以利用SSH安全連線與遠端主機互相複製檔案。使用scp命令時,除了必須制定複製源,目標以外,還應制定目標主機地址,登入使用者,執行後提示驗證口令等。如下:
複製某檔案到SSH伺服器上
通過sftp命令可以利用SSH安全連線與遠端主機上傳,下載檔案,採用了與FTP類似的登入過程和互動式環境,便於目錄資源管理。如下:
使用sftp命令通過SSH安全連線登入遠端伺服器
如果客戶端是windows系統,那麼我們可以使用一些圖形化的工具來訪問Linux伺服器。常見的一些圖形化工具有PuTTY,WinSCP等工具,具體如何使用請各位自行研究。
下面我們來詳細講解如何構建祕鑰對驗證的SSH體系
如下圖所示:簡單描述了構建祕鑰對驗證的基本過程。
根據上圖所示,我們分四步來構建祕鑰對驗證的SSH。
1、在SSH客戶機建立使用者祕鑰對。
如下:為test使用者建立祕鑰對。
上圖命令中:-t用於指定演算法型別,rsa表示使用rsa演算法。
祕鑰短語用來對私鑰文進行保護,當使用私鑰驗證登陸時必須提供此處所設定的短語。
祕鑰對預設儲存在使用者宿主目錄下的.ssh/目錄下。
2、將公鑰上傳至SSH伺服器
將公鑰上傳至SSH伺服器的方式有很多,可以使用U盤拷貝,也可以使用ftp、共享等方式上傳。在此我們使用剛講過的scp命令上傳公鑰檔案。
3、在SSH伺服器中匯入公鑰文字
在伺服器中,目標使用者(用來遠端登入的使用者)的公鑰資料庫位於~/.ssh/目錄下,預設檔名是authorized_keys。如下:將test的公鑰檔案匯入到user使用者的公鑰資料庫中。
4、此時在客戶端就可以使用祕鑰對驗證了。
此時需要使用者輸入建立祕鑰對時輸入的祕鑰短語,而不需要知道使用者的密碼即可登入SSH伺服器。
本文轉自yun5277 51CTO部落格,原文連結:http://blog.51cto.com/dengqi/1260038,如需轉載請自行聯絡原作者
相關文章
- 遠端訪問及控制——ssh
- SSH遠端訪問及控制
- Linux SSH遠端訪問Linux
- 02_3_配置SSH遠端訪問及控制
- Linux中開啟MySQL遠端訪問功能LinuxMySql
- linux遠端訪問問題薦Linux
- [SSH服務]——SSH詳解、常用的遠端連線工具
- SSH遠端埠轉發實戰詳解
- “SSH”讓遠端控制更安全(轉)
- windows terminal ssh 免密訪問遠端伺服器Windows伺服器
- mysql8.x docker遠端訪問配置詳解硨磬MySqlDocker
- Linux 遠端 ssh 登入Linux
- Redis遠端訪問Redis
- 威聯通NAS VirtualizationStation 安裝ubuntu配置SSH遠端訪問Ubuntu
- ssh控制遠端裝置連線wifiWiFi
- Linux 常見問題 - 拒絕遠端訪問Linux
- 使用frp進行內網穿透,實現ssh遠端訪問Linux伺服器FRP內網穿透Linux伺服器
- TeamViewer遠端訪問View
- vnc遠端畫面不能控制,為什麼vnc遠端畫面不能控制?原因詳解VNC
- 配置 RAC 節點以便可以使用 SSH 進行遠端訪問
- 基於SSH遠端訪問WSL2(非長期穩定版本)
- Linux下 SSH遠端管理服務Linux
- linux 遠端連線ssh錯誤Linux
- 解讀什麼是遠端訪問技術
- vnc遠端畫面不能控制,vnc遠端畫面不能控制是為什麼?原因詳解VNC
- Linux之facl----設定檔案訪問控制列表(詳解)Linux
- AIX下ssh信任關係建立後ssh 遠端訪問仍然需要輸入密碼問題解決 - 目錄許可權問題AI密碼
- rabbitmq 新增遠端訪問功能MQ
- PostgreSQL 9.6 配置遠端訪問SQL
- Linux 遠端資料同步工具詳解Linux
- Linux遠端控制技術Linux
- [zhuan]linux限制IP訪問sshLinux
- Window VNC遠端控制LINUX:VNC詳細配置介紹VNCLinux
- Linux更改SSH遠端登入埠教程Linux
- SSH遠端連線Linux伺服器Linux伺服器
- 遠端連線Kali Linux使用PuTTY實現SSH遠端連線Linux
- 遠端客戶端 訪問 ASM 例項客戶端ASM
- mysql如何允許遠端訪問MySql