ssh

ssh

本文展示了一些常见的 ssh 命令,了解一些 ssh 技巧将有利于任何系统管理员、网络工程师或安全专业人员。

连接远程主机

localhost:~$ ssh -v -p 22 -C [email protected]
  • -v:打印 debug 日志信息,用于打印连接时候的一些日志。
  • -p 22:指定连接远程主机的哪个端口,默认情况下,不用指定,因为 ssh 默认端口就是 22。编辑 sshd_config 文件,可以修改默认的 ssh 的监听端口。
  • -C:传输数据的时候,是否对数据启用压缩
  • [email protected]neo 代表远程主机的用户名,remoteserver 代表远程主机的 IP 或者域名。添加 -4 选项,可以只连接 IPv4 连接;添加 -6 选项,只连接 IPv6 连接。

拷贝文件到远程服务器

远程拷贝文件的命令 scp 建立在 ssh 命令之上:

localhost:~$ scp mypic.png [email protected]:/media/data/mypic_2.png
  • mypic.png:代表本地电脑上的图片
  • /media/data/mypic_2.png:代表你想把图片拷贝到远程主机的哪个路径

流量代理

SSH 代理特性被放在第1位是有充分理由的。它的功能比许多用户意识到的要强大得多,它允许您使用几乎任何应用程序访问远程服务器可以访问的任何系统。ssh客户机可以仅用一行代码,就可以使用SOCKS代理服务器在连接隧道上通信。

localhost:~$ ssh -D 8888 [email protected]

localhost:~$ netstat -pan | grep 8888
tcp        0      0 127.0.0.1:8888       0.0.0.0:*               LISTEN      23880/ssh

在这里,我们启动在TCP端口8888上运行的socks代理服务器,第二个命令检查端口是否正在监听。127.0.0.1表示服务仅在本地主机上运行。我们可以使用稍微不同的命令来监听所有接口,包括以太网或wifi,这将允许我们网络上的其他应用程序(浏览器或其他)连接到ssh socks代理服务。

localhost:~$ ssh -D 0.0.0.0:8888 [email protected]

现在我们可以配置浏览器来连接socks代理。在 Firefox 中选择 preferences | general | network settings。添加浏览器连接到的IP地址和端口。

生成 SSH Key

ssh-keygen 是一个为 ssh 创建新的身份验证密钥对的工具。此类密钥对用于自动登录、单点登录和对主机进行身份验证。

生成密钥对的最简单方法是不带参数运行 ssh-keygen。在这种情况下,它将提示输入要在其中存储密钥的文件。

ssh-keygen

拷贝 SSH Key 到远程主机

拷贝 ~/.ssh/id_rsa.pub 中的所有内容,追加到远程主机的 ~/.ssh/authorized_keys 这个文件中。这样,下次 ssh 就无需输入密码了。

localhost:~$ ssh-copy-id [email protected]

远程执行命令

ssh命令可以链接到其他命令以获得常见的管道乐趣。将要在远程主机上运行的命令添加为引号中的最后一个参数。

localhost:~$ ssh remoteserver "cat /var/log/nginx/access.log" | grep badstuff.php

参考

扫描下面二维码,在手机端阅读: