SSH 命令

SSH 只是加密的 shell,最初是用来替代 telnet 的,是一个独立的应用层协议。通过port forward,也可以让其他协议通过 ssh 的隧道而起到加密的效果。
  • 基于口令的安全验证
  • 基于密匙的安全验证

用ssh有什么好处:
  1. 通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS和 IP欺骗
  2. 还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
  3. 远程登录到服务器,根在服务器上操作没什么区别

可以口令登陆,可以公钥登陆。
所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
将公钥传送到远程主机host上面(或直接手动追加到远端$HOME/.ssh/authorized_keys文件中):
  $ ssh-copy-id user@host
相当于:
  $ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
ubuntu安装ssh服务(会自动启动):sudo apt-get install openssh-server
再重启ssh服务:
// ubuntu系统
service ssh restart

usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-e escape_char] [-F configfile]
[-I pkcs11] [-i identity_file]
[-L [bind_address:]port:host:hostport]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-R [bind_address:]port:host:hostport] [-S ctl_path]
[-W host:port] [-w local_tun[:remote_tun]]
[user@]hostname [command]

-C Enable compression.
压缩数据传输。
-L port:host:hostport
将本地机(客户机)的某个端口转发到远端指定机器的指定端口,又被称为"SSH隧道"
-R port:host:hostport
将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口.
-fN 选项,当你成功通过 SSH 服务器验证时 SSH 会进入后台运行.
-f Fork into background after authentication.
后台认证用户/密码
-N Do not execute a shell or command.
不执行脚本或命令,通常与-f连用。
-T 不分配TTY
-D [bind_address:]port 参数,指定一个本地机器 "动态的’’ 应用程序端口转发;
-g Allow remote hosts to connect to forwarded ports.
在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。
-t 该参数通过指定一个伪终端迫使SecureShell客户端以交互模式工作,即使在给定命令的情况下也是如此。它被用于执行在远地主机上的基于屏幕的程序。
-X X11转发,将远端linux图形界面数据通过ssh传送过来,本机用X Server显示
使用openshift代理:
ssh -D 7070 -g [email protected]