SSH相关

来源:互联网 发布:seo新手 编辑:程序博客网 时间:2024/05/21 09:06

1. SSH远程登录

通过ssh登录远程服务器:

ssh -p <port> <user_name>@<ip_address>

2. SSH文件传输

(1)远程下载

scp -pC <remote_user_name>@<remote_ip>:<remote_file_name> <local_dir>

(2)本地上传

scp -pC <local_file_name> <remote_user_name>@<remote_ip>:<remote_dir>

重要选项

  1. -r选项:上传或者下载目录
  2. -p选项:保存源文件的修改时间,访问时间以及方式
  3. -P <port>:修改ssh默认端口(默认为22
  4. -v:显示详细信息
  5. -C:压缩传输

注意:

  • scp不能正确复制软链,如过代码里含有软链请先压缩代码;或者使用rsync命令。

3. 跳板机

机器A <--> 机器B <--> 机器C,箭头表示可以相互通信,可以看到A是不能直接访问到C的。这种情况下,如果想在A访问C,就可以通过B做跳板。

ssh -t <reachable_host> ssh <unreachable_host>

4. 远程执行命令

ssh <remote-user>@<remote-ip> "cmd1 ; cmd2; ..."

列出远程根目录下所有文件或目录

ssh brown@172.93.39.11 "cd / ; ls -l"

5. 正向端口映射

本机连上jumper,然后把jumper能访问的server地址和端口映射到本机的端口上。

ssh <user_name>@<jumper_ip> -L <local_port>:<server_ip>:<server_port>

这里的<jumper_ip>表示跳板机ip,它可以被替换为<server_ip>,也就是说,jumper也可以和server是同一台机器。这样,你访问本地<local_port>时,实际上是在访问server的<server_port>端口。

6. 反向端口映射

本机连上jumper,然后将本机的端口绑定到server端口。

ssh <user_name>@<jumper_ip> -R <server_ip>:<server_port>:<local_ip>:<local_port>

这里的<jumper_ip>表示跳板机ip,它可以被替换为<server_ip>,也就是说,jumper也可以和server是同一台机器。这样,你的server访问它的<server_port>端口就是在访问本机<local_port>

你在本地做反向端口映射相当于你在server端做正向端口映射。反向端口映射也被称为打洞

7. socks代理

ssh -D可以制作一个sshd socks代理服务器。

ssh <remote_user>@<remote_ip> -D <local_ip>:<local_port>

<local_ip>可以省略,省略意味着localhost
如果你的remote机器可以翻墙,现在设置你的chrome使用<local_ip>:<local_port>的socks代理,你的chrome就可以实现翻墙了。当本地ip绑定后(声明了<local_ip>),局域网的其它机器也可以使用你的socks代理。

Ref

https://my.oschina.net/ffs/blog/602374

0 0