SSH 命令

Tags
linuxssh
Created
Jan 3, 2016 11:23 AM

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]

SuperMade with Super