导读 因为使用环境完全切换到了Fedora下,Fedora可没有Windows下Xshell那么额外的ssh连接工具。Fedora有ssh命令足够替代习惯使用Xshell的用户(我这样的)来连接管理远程服务器,本片文章就简单记录以下ssh命令的使用细节。

SSH命令详解

语法

ssh(选项)(参数)

选项

-1:强制使用ssh协议版本1;
-2:强制使用ssh协议版本2;
-4:强制使用IPv4地址;
-6:强制使用IPv6地址;
-A:开启认证代理连接转发功能;
-a:关闭认证代理连接转发功能;
-b:使用本机指定地址作为对应连接的源ip地址;
-C:请求压缩所有数据;
-F:指定ssh指令的配置文件;
-f:后台执行ssh指令;
-g:允许远程主机连接主机的转发端口;
-i:指定身份文件;
-l:指定连接远程服务器登录用户名;
-N:不执行远程指令;
-o:指定配置选项;
-p:指定远程服务器上的端口;
-q:静默模式;
-X:开启X11转发功能;
-x:关闭X11转发功能;
-y:开启信任X11转发功能。

参数

  • 远程主机:指定要连接的远程ssh服务器;
  • 指令:要在远程ssh服务器上执行的指令。
SSH连接使用

语法看上去很死板累赘,其实用不到那么多。习惯中就只用这个

ssh name@server-ip

或者

ssh server-ip -l name

以上两种方式都可以远程登录到服务器,server-ip代表远程服务器的IP地址,name代表SSH登陆进远程服务器的用户名,一般为root。

如果远程服务器的端口是其他的,在后面加上-p参数。

ssh name@server-ip -p 12345

连接成功终端就会提示继续输入用户密码,输入就好了。

SSH使用公钥免密登陆
SSH登录时有两种验证方式
  1. 基于密码的安全验证,它要求用户在每次登录服务器时输入密码,服务器端验证通过后即登录成功。
  2. 基于密钥的安全验证,客户端的公钥会预先保存在服务器端,当登录时,服务器端会使用该公钥做验证,如果验证成功,用户不需输入密码即完成登录。

为了避免每次都输入密码这种重复性工作,我们可以选择使用公钥进行远程登录。

本地生成密钥对终端执行

ssh-keygen

然后一路回车就行了,回车就是将密钥对保存位置和打开密码默认设置。执行完毕会提示名为id_rsa和id_rsa.pub的私钥文件和公钥文件在/home/user/.ssh目录下。

然后将公钥上传到远程服务器

ssh-copy-id root@server-ip

server-ip为远程服务器的IP地址。然后根据提示输入密码。当看到终端显示

Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'root@remoteserver"
and check to make sure that only the key(s) you wanted were added.

代表上传成功,接着你可以只用使用“ssh root@server-ip”命令直接登陆远程服务器,而不需要密码了

对远程服务器设置别名登陆
就算是设置免密登陆,SSH命令后面需要带的server-ip也够麻烦的,过几年普及IPV6地址,ssh登陆一次就欲仙欲死的。我们可以通过配置服务器别名的方式进一步免输服务器的IP地址。
在/home/user/.ssh/目录下新建config文件,内容如下:
Host hostname
HostName server-ip
User root
IdentitiesOnly yes
保存退处即可。注意,第一行的hotname是你对服务器设置的别名,叫什么随意。 第二行server-ip换成你的远程服务器的IP。别真的傻乎乎的照搬复制了。
然后就可以执行 “ssh hostname”命令(hostname换成你设置的别名)愉快的登陆进远程服务器了。
如果报错“Bad owner or permissions on /home/root/.ssh/config”字样,那是权限的问题。
对config文件执行

chmod 600 config
scp的拷贝命令。也可以直接使用,scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。当配置好ssh公钥和别名,在scp上也一样通用

本文原创地址:https://www.linuxprobe.com/ssh-sumup.html

作者:倪家兴,审核员:逄增宝

本文原创地址:https://www.linuxprobe.com/ssh-sumup.html编辑:倪家兴,审核员:暂无