Openssh遠程連接服務器
什麼是 Openssh?
- OpenSSH是目前最流行的遠程系統登錄或文件傳輸應用
主要功能
- OpenSSH提供了服務端後臺程序(sshd)和客戶端工具(ssh), 用來加密客戶端與服務端通信中的數據和傳輸過程中的文件
關於 SSH(Secure Shell)版本
- SSH1是基於 CRC(Cyclic Redundancy Check 循環冗餘校驗)來做校驗數據傳輸, 後來發現這種編碼技術有缺陷
- SSH2增加了一個確認聯機正確性的 DH(Diffie-Hellman 密鑰交換協議/算法)機制, 每次數據的傳輸, 服務都會檢查相關數據來源的正確性
SSH2的工作機制
- 注:OpenSSH是隨機生成公私密鑰的
- ssh客戶端請求到服務器
- OpenSSH服務器的 sshd將會發送一個公鑰
- ssh客戶端將會提示是否接收服務器端發送的公鑰, 同時 ssh客戶端製作密鑰對回傳給服務器, 因而雙方都擁有對方的密鑰, 能夠解密雙方交互的加密數據
- SSH只有創建連接階段和身份認證握手階段是使用了非對稱加密, 以外的數據傳輸都是對稱密鑰來加密的
基本使用
服務端 sshd
Ubuntu安裝&啓動
- apt-get install openssh-server
- /etc/init.d/ssh [start|stop|restart]
CentOS更新&啓動
- yum update openssh
- service sshd [start|stop|restart]
查看 sshd是否在進程中
- ps -ef|grep ssh
root 1013 1 0 Feb26 ? 00:23:01 /usr/sbin/sshd
root 13103 1013 0 07:10 ? 00:00:00 sshd: root@pts/0
root 13197 13116 0 07:10 pts/0 00:00:00 grep ssh
- /etc/init.d/sshd status
openssh-daemon (pid 1013) is running...
查看 ssh版本
- ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
sshd常用配置
- vim /etc/ssh/sshd_config
Port 22 #端口
PasswordAuthentication yes # ssh的默認認證方式 [yes/no]
PermitRootLogin yes # root用戶登陸權限 [yes/no]
AllowUsers testuser # 用戶白名單, 允許 testuser登陸, 多個用戶使用空格隔開
AllowGroups # 允許登陸的組白名單
DenyUsers testuser2 # 用戶黑名單, 當前不允許 testuser2登陸
DenyGroups # 不允許登陸的組黑名單
客戶端 ssh登錄
# 使用默認端口 22登錄
ssh [email protected]
# 指定自定義端口登錄
ssh -p 22222 [email protected]
Password: 輸入密碼
Last login: Fri Nov 15 23:38:41 2019 from x.x.x.x
Welcome to aliyun Elastic Compute Service!
生成 RSA密鑰, 用於免密登錄
- ssh-keygen -t rsa
- cd /root/.ssh 默認目錄
默認生成密鑰&公鑰
- id_rsa 密鑰
- id_dsa.pub 公鑰
參數 | 說明 |
---|---|
-t | [rsa/dsa] 密鑰類型, 建議使用 rsa |
-b | [1024/2048/4096…] 密鑰長度 |
-f | /PATH/TO/OUTPUT_KEYFILE 指定將要存儲的路徑及密鑰文件 文件名必須爲 id_rsa |
-P | ‘’ 指定密鑰密碼, ''表示空密碼 |
如果您覺得有幫助,歡迎點贊哦 ~ 謝謝!!