Linux 下 SSH 命令实例指南

摘要:
您可以先访问Wikipedia了解它。最简单的SSH命令是指定用户名和主机名参数。主机名可以是IP地址或域名。命令格式如下:但是,出于各种原因,您可能需要连接到其他端口$ssh-p10022user@hostname上述命令通过添加参数-p将端口号指定为10022。有时,命令在远程主机上执行并在本地显示,

如果你已经在IT圈内混久了, 应该对 SSH 这个了不起的工具及其安全特性有所耳闻吧. 本教程可以让你在短时间内掌握通过 SSH 安全便利地连接到远程计算机的技术.

如果你对 SSH 还没什么概念, 可以先访问 维基百科 进行了解.

Linux 下 SSH 命令实例指南第1张

基本用法

最简单的 SSH 命令只需要指定用户名和主机名参数即可. 主机名可以是 IP 地址或者域名. 命令格式如下:

  1. $ ssh user@hostname

比如要在我的局域网内登录一个树莓派系统, 只需要简单的在命令行输入如下命令:

  1. $ ssh pi@10.42.0.47

命令中的 pi 和 10.42.0.47 分别是我的树莓派系统的用户名和局域网 IP 地址. 实际使用时主机名需要改成你的目标主机(局域网内或者远程)的 IP 地址.

basic ssh

如果你能够成功登陆, 那么下面的内容对你来说就轻而易举了.

使用其他端口

SSH 默认连接到目标主机的 22 端口上,但是由于各种原因你可能需要连接到其他端口.

  1. $ ssh -p 10022 user@hostname

如上命令就是通过添加参数 -p 指定端口号为 10022.

远程执行命令

有时在远程主机执行一条命令并显示到本地, 然后继续本地工作是很方便的. SSH 就能满足这个需求:

  1. $ ssh pi@10.42.0.47 ls -l

比如上面这个命令就会枚举远程主机的主目录内容并在本地显示. 是不是很酷? 你可以尝试下其他命令看看.

remote command

挂载远程文件系统

另外一个很赞的基于 SSH 的工具叫 sshfs. sshfs 可以让你在本地直接挂载远程主机的文件系统.

  1. $ sshfs -o idmap=user user@hostname:/home/user ~/Remote

比如下面这条命令:

  1. $ sshfs -o idmap=user pi@10.42.0.47:/home/pi ~/Pi

该命令就将远程主机 pi 用户的主目录挂载到本地主目录下的 Pi 文件夹.

要详细了解可以参考 sshfs 教程.

X11 图形界面

假如现在你想要在远程主机运行一个图形界面的程序, SSH 已经帮你想到了! 用前面提到的 SSH 基本命令加上参数 -X 连接到远程主机即可开启 X11 转发功能. 登录后你可能觉得没什么差别, 但是当你运行一个图形界面程序后就会发现其中的不同的.

  1. $ ssh -X pi@10.42.0.47
  2.  
  3. $ pistore

如果你想在运行图形界面程序的同时做些别的事情, 只需要简单地在命令末尾加一个 & 符号.

  1. $ pistore&

X11 forwarding

转义字符

SSH 提供了多样的转义字符功能. 用 SSH 连接到任意一台远程主机然后输入 ~? 你就可以看到支持的转义字符和功能说明列表. 以下例子展示了 ~# 和 ~C 的效果.

escape sequences

配置 SSH

如果你需要改变 SSH 的配置, 请用你喜好的文本编辑器打开 /etc/ssh/sshd_config 进行编辑. 比如你想改变登陆的标语, 在配置文件中找到下面这行:

  1. #Banner none

删除 # 字符(取消该行的注释), 将 none 替换为包含你期望显示内容的文件地址. 修改后该行应该类似这样:

  1. Banner/etc/issue

在配置文件 /etc/ssh/sshd_config 中你还可以找到端口号, 空闲超时时间等配置项. 配置项大都比较容易理解, 但是保险起见在你修改一些不是很确定的配置项时最好参考下 SSH 的帮助文档.

构建 ssh 密钥对

运行以下命令创建密钥对:

  1. $ ssh-keygen -t dsa

此命令会要求你输入密码(可以留空), 然后就会生成密钥并会显示一张该密钥对应的随机图.

generate key pair

寻找主机密钥

在你准备添加密钥之前不妨先用以下命令看看是否已经添加了对应主机的密钥了.

  1. $ ssh-keygen -F 10.42.0.47

find hostkey

删除主机密钥

某些情况下, 比如主机地址更改或者不再使用某个密钥, 你就可能需要删除某个密钥.

  1. $ ssh-keygen -R 10.42.0.47

用以上命令就可删除. 这比手动在 ~/.ssh/known_hosts 文件中删除要方便很多.

remove hostkey

总结

通过以上的内容你应该可以轻松使用 SSH 了. SSH 还有很多功能值得你去发掘, 这就要看你的想象力了。

免责声明:文章转载自《Linux 下 SSH 命令实例指南》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Loadrunner11完美破解小笔记(转载)U-boot启动完全分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

springboot中使用h2数据库(内存模式)

使用H2的优点,不需要装有服务端和客户端,在项目中包含一个jar即可,加上初始化的SQL就可以使用数据库了 在springboot中引入,我的版本是2.1.4,里面就包含有h2的版本控制 <!-- 集成h2数据库 --> <dependency> <groupId>c...

RocketMQ系列:单机快速搭建单broker环境

本文使用rocketmq的fast-try.sh快速在centos7上搭建一个单机版的rocketmq,单机版仅用于本地调试,不能用于生产环境。 1. 支持系统 Centos7/Ubuntu16/Mac/Windows 2. 配置建议 cpu:4核以上 内存:8G以上 硬盘:20G以上 3. 下载&解压Rockmet 3.1 下载 访问:http:...

Linux sudo 找不到命令

普通用户执行需要root权限的命令,提示“找不到命令”,但是root用户执行该命令不报错,可能是由于该命令未处在sudo搜索的路径。 本文以sudo easy_install 为例,给出的提示为: sudo:easy_install:找不到命令 工具/原料 Linux系统 方法/步骤 用非root用户登录,输入 sudo which easy_insta...

Redis发布与订阅

Redis 通过 PUBLISH 、 SUBSCRIBE 等命令实现了订阅与发布模式, 这个功能提供两种信息机制, 分别是订阅/发布到频道和订阅/发布到模式。  举个例子: 当右边窗口执行了后, 一、频道的订阅与信息发送 Redis 的 SUBSCRIBE 命令可以让客户端订阅任意数量的频道, 每当有新信息发送到被订阅的频道时, 信息就会被发送给所有...

RedHat7 Git 安装使用

Git 是一个很强大的分布式版本控制系统。它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势。 搭建git环境 第一步: 安装Git # yum -y install git 第二步: 在https://github.com/上创建GitHub帐号  第三步: 生成ssh key # ssh-keygen -t rsa -C "you...

xshell 安全加密

一、什么是 xshell: xshell 是一个远程执行命令的客户端程序,对应openssh-sever服务器程序(默认端口22) 套接字------------------网络----------------套接字 xshell                                                openssh-sever 为何...