用途

通过加密连接,远程登录主机和在远程主机执行命令,也可以用于转发x11和tcp,也可用于搭建VPN。第一次连接时,会弹出远程主机公钥指纹确认信息,通过这个方式防止中间人攻击。

用法

ssh [options] [user@]hostname [command]

常用选项

-1

使用协议版本1

-2

使用协议版本2

-4

使用IPv4地址

-6

使用IPv6地址

-A

开启授权代理转发,有安全问题,一般不开启

-a

禁用authentication agent connection的转发

-b bind_address

设置连接的源地址

-C

传输时压缩数据,针对慢网速有明显的效果

-c cipher_spec

指定加密会话的算法,对于协议2版本可以指定多个且使用逗号隔开(指定多个好像没神马用><)

-D [bind_address:]port

本地动态端口转发配置,目前支持SOCKS4和SOCKS5协议

-e escape_char

给会话设置转义字符,默认是~(不知道这个选项是有什么用?)

-F configfile

指定配置文件路径,默认是/etc/ssh/ssh_config

-f

执行命令之前,ssh在后台执行

-g

允许远程主机连接本地转发端口

-I pkcs11

(Specify the PKCS#11 shared libarary ssh should use to communicate with a PKCS#11 token used for storing the user’s private RSA key.)

-i identity_file

使用私钥登录时,私钥所在的文件路径

-K

(Enables GSSAPI-based authentication and forwarding (delegation) of GSSAPI credentials to the server.)

-k

(Disables forwarding (delegation) of GSSAPI credentials to the server.)

-L [bind_address:]port:host:hostport

(Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side. This works by allocating a socket to listen to port on the local side, optionally bound to the specified bind_address. Whenever a connection is made to this port, the connection is forwarded over the secure channel, and a connection is made to host port hostport from the remote machine. Port forwardings can also be specified in the configuration file.)

-l login_name

设置登录远程主机用户名

-N

禁止执行远程命令,对于只是用于转发很有用

-n

(Redirects stdin from /dev/null (actually, prevents reading from stdin). This must be used when ssh is run in the background. A common trick is to use this to run X11 programs on a remote machine.)

-o option

(Can be used to give options in the format used in the configuration file. This is useful for specifying options for which there is no separate command-line flag.)

-p port

指定连接远程主机的端口,默认是22

-q

安静模式

-R [bind_address:]port:host:hostport

(Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side. This works by allocating a socket to listen to port on the remote side, and whenever a connection is made to this port, the connection is forwarded over the secure channel, and a connection is made to host port hostport from the local machine.)

-s

(May be used to request invocation of a subsystem on the remote system. Subsystems are a feature of the SSH2 protocol which facilitate the use of SSH as a secure transport for other applications (eg. sftp(1)). The subsystem is specified as the remote command.)

-T

(Disable pseudo-tty allocation.)

-t

(Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services.)

-V

显示程序版本

-v

开启调试模式

-W host:port

(Requests that standard input and output on the client be forwarded to host on port over the secure channel. Implies -N, -T, ExitOnForwardFailure and ClearAllForwardings and works with Protocol version 2 only.)

-w local_tun[:remote_tun]

( Requests tunnel device forwarding with the specified tun(4) devices between the client (local_tun) and the server (remote_tun).)

-X

(Enables X11 forwarding.)

-x

(Disables X11 forwarding.)

-Y

(Enables trusted X11 forwarding. Trusted X11 forwardings are not subjected to the X11 SECURITY extension controls.)

-y

(Send log information using the syslog(3) system module. By default this information is sent to stderr.)

识别用户身份方式

1 GSSAPI-based authentication

2 host-based authentication

3 public key authentication

4 challenge-response authentication

5 password authentication

转移字符含义

~. Disconnect.

~^Z Background ssh.

~# List forwarded connections.

~& Background ssh at logout when waiting for forwarded connection / X11 sessions to terminate.

~? Display a list of escape characters.

~B Send a BREAK to the remote system (only useful for SSH protocol version 2 and if the peer supports it).

~C Open command line.

~R Request rekeying of the connection

实践

1 使用私钥登录

[root@vm ~]# ssh -p 22 -i wadeyu.pem wadeyu@192.168.2.42

2 使用账号密码登录

[root@vm ~]# ssh -p 22 wadeyu@192.168.2.42
wadeyu@192.168.2.42's password:
Last login: Tue Apr 17 11:49:11 2018 from 192.168.2.8

参考资料

【0】 man ssh

【1】实战SSH端口转发

https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/

N天学习一个linux命令之ssh的更多相关文章

  1. N天学习一个Linux命令之帮助命令:man

    前言 工作中每天都在使用常用的命令和非常用的命令,忘记了用法或者参数,都会bing一下,然后如此循环.一直没有真正的系统的深入的去了解命令的用法,我决定打破它.以前看到有人,每天学习一个linux命令 ...

  2. N天学习一个linux命令之scp

    用途 通过ssh通道,不同主机之间复制文件 用法 scp [options] [user@host:]file1 [user2@host2:]file2 常用参数 -1使用 ssh 1协议 -2使用s ...

  3. N天学习一个Linux命令之free

    用途 查看系统内存(物理/虚拟/缓存/共享)使用情况 用法 free [-b | -k | -m | -g | -h] [-o] [-s delay ] [-c count ] [-a] [-t] [ ...

  4. N天学习一个linux命令之ping

    用途 检测主机是否可到达,也就是说,目标主机是否可以联网,还可以用于检测网速.通过发送ICMP ECHO_REQUEST数据包检测. 用法 ping [options] destination 常用选 ...

  5. N天学习一个linux命令之kill

    用途 用于终止进程 用法 kill [-s signal|-p] [--] pid... kill -l [signal] 说明 1.默认发送信号15(请求终止进程,程序可以捕获,操作系统会杀死没有对 ...

  6. N天学习一个linux命令之du

    用途 统计文件或者目录占用硬盘空间大小 用法 du [OPTION] [FILE]du [OPTION] --files0-from=F 常用参数 -a, --all统计所有文件,不仅仅是目录 -b, ...

  7. 每天学习一个Linux命令-目录

    在工作中总会零零散散使用到各种Linux命令,从今天开始详细的学习一下linux常用命令,坚持每天一个命令,学习的主要参考资料为: 1.竹子-博客(https://www.cnblogs.com/pe ...

  8. N天学习一个linux命令之umask

    前言 umask不是linux命令,而是shell内置的指令,俗称用户权限掩码,用于对用户创建的文件和目录设置默认权限.默认的权限掩码是0022,也就是说新创建的文件权限是0644,新创建的目录权限是 ...

  9. N天学习一个linux命令之ip

    用途 show / manipulate routing, devices, policy routing and tunnels 用法 通用格式 ip [ OPTIONS ] OBJECT { CO ...

随机推荐

  1. 产生冠军(toposort)

    http://acm.hdu.edu.cn/showproblem.php?pid=2094 #include <stdio.h> #include <iostream> #i ...

  2. codevs2557张程易(背包dp)

    2557 张程易,编程易  时间限制: 2 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Description 张程易是一名神奇的魔法少女,在oier之中有着 ...

  3. python抢票开发——设备预约助手实现

    女朋友是药学院的,做实验时需要在特定的网站上进行设备预约,由于预约人数过多,从而导致从浏览器登录不进去或者登录进去预约失败等情况,所以我用python帮她写了一个抢位助手,让程序自动去进行位置预定,实 ...

  4. vscode----vue中HTML代码tab键自动补全

    1.在vscode中插件下载并重新加载HTML Snippets 2.settings.json中配置files.associations对象. 找到setting.json文件:文件 --> ...

  5. query.setFirstResult(0),query.setMaxResults(4)

    query.setFirstResult(0),query.setMaxResults(1);相当于MySQL中的limit 0, 1; String hql = "FROM Forum f ...

  6. ACM_三元一次函数解法(克莱姆法则)

    三元一次函数 Time Limit: 2000/1000ms (Java/Others) Problem Description: 计算三元一次函数..如图 Input: EOF,先输入n,表示样例个 ...

  7. 新人浅谈__(数据库的设计__数据库模型图,数据库E-R图,三大范式)

    >>>>  为什么需要规范的数据库设计 在实际的项目开发中,如果系统的数据存储量较大,设计的表比较多,表和表之间的关系比较复杂,就需要首先考虑规范的数据库设计,然后进行创建库, ...

  8. [ SHOI 2012 ] 随机树

    \(\\\) \(Description\) 开始有一棵只有一个根节点的树.每次随机选择一个叶子节点,为他添上左右子节点,求: 生成一棵有\(N\)个叶节点的树,所有叶节点平均高度的期望. 生成一棵有 ...

  9. C# windform自定义控件的属性小知识

    word中的加粗变斜之类的一直让我以为是button,直到我接触了自定义控件,才发现实现这种机能最好的是CheckBox,然后我们在做一个系统的时候,这种控件有可能要用好多次,总不能在用一次的时候,就 ...

  10. dubbo之路由规则

    向注册中心写入路由规则:(通常由监控中心或治理中心的页面完成) RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader ...