#ssh 远程连接 从最易上手的开始讲,比如我们想连接一个服务器,服务器IP地址是192.168.1.1,账号username,那么我们输入如下两个命令中的一个命令即可

ssh username@192.168.1.1
ssh -l username 192.168.1.1

如果远程服务器指定了端口,我们只需添加-p命令即可 例如登陆极路由后台(抱歉打了软广)

ssh root@192.168.199.1 -p 1022 

以root身份登录到IP为192.168.199.1的服务器中,连接端口为1022

查看SSH客户端版本

使用ssh -V命令可以得到版本号。需要注意的是,Linux和macOS一般自带的是OpenSSH。下面的例子即表明该系统正在使用OpenSSH:

$ ssh -V
OpenSSH_7.3p1, LibreSSL 2.4.1

查看服务器是否安装sshserver

有些时候我们无法用ssh 连接远程服务器,原因可能是服务器上并没有安装ssh服务端,特别是用最小安装包安装系统时,一般都没有安装ssh服务端。

在服务器终端输入

ssh localhost

如果出现下面信息则没有安装sshserver

ssh: connect to hostlocalhost port 22: Connection refused 

##安装sshserver ubuntu:

sudo apt-get install openssh-server

安装完成后启动服务

service ssh start

用SSH登录到远程主机

当你第一次使用ssh登录远程主机时,会出现没有找到主机密钥的提示信息。输入”yes”后,系统会将远程主机的密钥加入到你的主目录下的 .ssh/know_hosts下,这样你就可以继续操作了。 当你第二次登陆远程主机时,只需要你输入远程主机的登录密码即可。

##ssh无密码登入

事实再一次证明英文帮助文档常常把一个简单的功能解释的又臭又长

  • 该方面目前适用于macOS 10.12以后的版本!!!

使用命令生成ssh登录的公钥和密钥

ssh-keygen -t rsa -C "uesrname@remotehost"

接下来按照提示完成想要的设置 执行命令将密钥添加到Mac的keychain,其中id-rsa是你生成的密钥地址

ssh-add -K ~/.ssh/id_rsa
ssh-add -A 

编辑配置文件,在~/.ssh/config中添加如下命令

Host * 
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa

用SSH退出符切换SSH会话

这个技巧非常实用。尤其是远程登陆到一台主机A,然后从A登陆到B,如果希望在A上做一些操作,还得再开一个终端,很是麻烦。 当你使用ssh从本机登录到远程主机时,你可能希望切换到本地做一些操作,然后再重新回到远程主机。这个时候,你不需要中断ssh连接,只需要按照如下步骤操作即可: 当你已经登录到了远程主机时,你可能想要回到本地主机进行一些操作,然后又继续回到远程主机。在这种情况下,没有必要断开远程主机的会话,你可以用下面的办法来完成:

登入远程主机:

localhost$ ssh -l username remotehost 已连接远程主机:

remotehost$ 要临时回到本地主机,输入退出符号:`~`与`Control-Z`组合。 当你输入`~`你不会立即在屏幕上看到,当你按下`Control-Z`并且按回车之后才一起显示。如下,在远程主机中以此输入`~<Control-Z>`

	remotehost$ ~^Z
	[1]+ Stopped ssh -l username remotehost
	localhost$

现在你已经退回到了本地主机,ssh远程客户端会话就在UNIX后台中运行,你可以向下面那样查看它:

	localhost$ jobs
	\[1]+ Stopped ssh -l username remotehost 你可以将后台运行的ssh会话进程切换到前台,重新回到远程主机,而无需输入密码

	localhost$ fg %1
	ssh -l username remotehost
	remotehost$