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爆破源码 哟~~