SSH
Tatu Ylonen
Linux
OpenSSH
此外,本文只討論SSH在Linux Shell中的用法。如果要在Windows系統中使用SSH,會用到另一種軟體PuTTY,本文不做介紹。
Linux Shell
Windows
PuTTY
最基本的用法
$ ssh user@host
$ ssh host
$ ssh -p 2222 user@host
整個過程是這樣的:
這個過程本身是 安全 的,但是實施的時候存在 一個風險:
https
Man-in-the-middle attack
SSH 協議是如何應對的呢?
$ ssh user@host The authenticity of host host (12.18.429.21) cant be established. RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d. Are you sure you want to continue connecting (yes/no)?
host
RSA
1024
MD5
128
98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added host,12.18.429.21 (RSA) to the list of known hosts.
下次 再連接 這臺主機,系統就會認出它的 公鑰 已經保存在本地了,從而跳過警告部分,直接提示輸入密碼。
known_hosts
/etc/ssh/ssh_known_hosts
shell
ssh-keygen
其中有一個問題是,要不要對 私鑰設置口令(passphrase),如果擔心 私鑰的安全,這裡可以 設置一個。
$HOME/.ssh/
id_rsa.pub
id_rsa
/etc/ssh/sshd_config
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
ssh
# ubuntu系統 service ssh restart # debian系統 /etc/init.d/ssh restart
authorized_keys文件
$HOME/.ssh/authorized_keys
authorized_keys
ssh-copy-id
$ ssh user@host mkdir -p .ssh && cat >> .ssh/authorized_keys < ~/.ssh/id_rsa.pub
我們來分析一下這條命令:
mkdir -p .ssh && cat >> .ssh/authorized_keys
~/.ssh/id_rsa.pub
寫入authorized_keys文件後,公鑰登錄的設置就完成了。
scapy
Python
pip3 install paramio
import paramiko ssh_client=paramiko.SSHClient() ssh_client.connect(hostname=』hostname』,username=username,password=』mypassword』)
SSHClient
set_missing_host_key_policy()
paramiko.SSHclient
RejectPolicy
Paramiko
AutoAddPolicy
connect
cmd
code
相關代碼如下:
我們 爆破 出了遠程主機的密碼,並且通過遠程 執行命令,發現了對方的 操作系統版本。。
關注筆者公眾賬號[mindev],並回復 ssh,就能得到 ssh爆破源碼 喲~~