Linux下10个常用的SSH命令选项

SSH(全称 Secure Shell)是一种加密的网络协议。使用该协议的数据将被加密,如果在传输中间数据泄漏,也可以确保没有人能读取出有用信息。要使用 SSH,目标机器应该安装 SSH 服务端应用程序,因为 SSH 是基于客户-服务模式的。 当你想安全的远程连接到主机,可中间的网络(比如因特网)并不安全,通常这种情况下就会使用 SSH。

安装 SSH

Linux 系统默认已经安装了 SSH。可以手工来安装一下。最简单的方式就是使用 Linux 包管理器。 

基于 Debian / Ubuntu 的系统 : 

安装 ssh-client

$ sudo apt-get install openssh-client

安装 ssh-server

$ sudo apt-get install openssh-server

基于 RedHat / CentOS 的系统 :

# yum install openssh-server openssh-clients

SSH 一旦安装上,我们就可以在终端下输入 ssh 来检查下安装的是否正常。

linuxidc@linuxidc:~$ ssh
usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
          [-D [bind_address:]port] [-E log_file] [-e escape_char]
          [-F configfile] [-I pkcs11] [-i identity_file] [-L address]
          [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
          [-Q query_option] [-R address] [-S ctl_path] [-W host:port]
          [-w local_tun[:remote_tun]] [user@]hostname [command]

使用 SSH

提供了许多可使用的选项。这篇文章会介绍一些我们在日常操作中经常使用的选项。 

1. 无选项参数运行 SSH

通常使用 SSH 的方式就是不加任何选项参数,仅仅输入 “ssh”。下面是示例:

$ ssh 192.168.0.103

第一次连接目标主机时,ssh 会让你确认目标主机的真实性。如果你回答的是 NO,SSH 将不会继续连接,只有回答 Yes 才会继续。 

下一次再登陆此主机时,SSH 就不会提示确认消息了。对此主机的真实验证信息已经默认保存在每个用户的 /home/user/.ssh 文件里。 

2. 指定登陆用户

默认的,ssh 会尝试用当前用户作为用户名来连接。在上面的示例命令中,ssh 会尝试用用户名叫 pungki 的用户身份来登入服务器,这是因为用户 pungki 正在客户机上使用 ssh 客户端软件。

假如目标主机上没有叫 pungki 的用户,这时你就必须提供一个目标主机上存在的用户名。从一开始就要指定用户名的,可以使用 -l 选项参数。

$ ssh -l linuxmi 192.168.0.103

也可以这样输入:

$ ssh linuxmi@192.168.0.0103

3. 指定端口

SSH 默认使用的端口号是 22。大多现代的 Linux 系统 22 端口都是开放的。如果你运行 ssh 程序而没有指定端口号,它直接就是通过 22 端口发送请求的。

一些系统管理员会改变 SSH 的默认端口号。要连上那主机,就要使用-p选项,后面在加上 SSH 端口号。

$ ssh 192.168.0.103-p 1234

要改变端口号,我们需要修改 /etc/ssh/ssh_config 文件,找到此行:

Port22

把它换成其他的端口号,比如上面示例的 1234 端口,然后重启 SSH 服务。 

4.对所有数据请求压缩

有了这个选项,所有通过 SSH 发送或接收的数据将会被压缩,并且仍然是加密的。要使用 SSH 的压缩功能,使用 -C 选项。

$ ssh -C 192.168.0.103

如果你的连网速度很慢的话,比如用 modem 上网,这个选项非常有用。但如果你使用的是像 LAN 或其它更高级网络的话,压缩反而会降低你的传输速度。可以使用* -o* 选项加上压缩级别参数来控制压缩的级别,但这个选项仅仅只在SSH-1下起作用。

5. 指定一个加密算法

SSH 提供了一些可用的加密算法。可以在 /etc/ssh/ssh_config or ~/.ssh/config  文件中看到(如果存在的话)。

SSH cipher configuration example

如果想使用 blowfish 算法来加密你的 SSH 会话,只要把这一行加入你的/etc/ssh/ssh_config or ~/.ssh/config 文件就可以:

Cipher blowfish

默认的,SSH 会使用 3des 算法。

6. 打开调试模式

因为某些原因,我们想要追踪调试我们建立的 SSH 连接情况。SSH 提供的 -v 选项参数正是为此而设的。

$ ssh -v 192.168.0.103

7. 绑定源地址

如果你的客户端有多于两个以上的 IP 地址,你就不可能分得清楚在使用哪一个 IP 连接到 SSH 服务器。

为了解决这种情况,我们可以使用 -b 选项来指定一个IP 地址。这个 IP 将会被使用做建立连接的源地址。

$ ssh -b 192.168.0.200-l linuxmi 192.168.0.103

服务端,我们可以使用 netstat 命令来检查到服务的连接是否建立。

8. 使用其他配置文件

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12525.html