69

SSH命令使用小节

 5 years ago
source link: https://www.linuxprobe.com/ssh-sumup.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
导读 因为使用环境完全切换到了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

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK