SSH详解-2.ssh基本用法

SSH详解-2.ssh基本用法,第1张

SSH详解-1.ssh基础知识

SSH详解-2.ssh基本用法

SSH详解-3.密钥登陆

SSH详解-4.多个ssh公钥

OpenSSH 的客户端是二进制程序 ssh,Linux 系统一般都自带 ssh。新版的win10开启ssh服务,但不是很好用,可以使用一些好用的软件 Xshell 、 Putty 等

安装OpenSSH 以后,可以使用 -V 参数输出版本号,查看一下是否安装成功。

ubuntu

windows

ssh最常用的用途就是登录服务器,当然这需要服务器再运行着sshd。

ssh 登录服务器的命令如下,例如连接局域网内一台ip地址为192.168.1.98的主机

上面命令中,root是用户名,@后面的是主机名,它可以是域名,也可以是 IP 地址或局域网内部的主机名。

用户名也可以使用ssh的 -l 参数指定,这样的话,用户名和主机名就不用写在一起了。

ssh 默认连接服务器的22端口, -p 参数可以指定其他端口。

上面命令连接服务器192.168.1.98的8888端口,这里没有指定用户名。将使用客户端的当前用户名,作为远程服务器的登录用户名。

刚刚应该注意到这段话了,这段话是什么意思呢?

上面这段话的意思是192.168.1.98这个服务器的指纹是陌生的,是否要继续连接(输入 yes or no )。

接下来,输入 yes 后ssh会将当前服务器的指纹存储在本机 ~/.ssh/known_hosts 文件中。以后再连接的时候,就不会再出现警告了。

也就是说,ssh通过判断当前服务器公钥的指纹是否存在于~/.ssh/known_hosts文件中,来判断是否为陌生主机

然后,客户端就会跟服务器建立连接。

接着,ssh 要求用户输入所要登录账户的密码,用户输入密码验证成功后就可以使用远程shell了。

ssh(1) - OpenBSD manual pages

首先说一下使用ssh远程连接服务器执行命令的方法:

为了方便描述,这里把测试服务器称之为A1,目标服务器称之为A2

如果可以直接登录到A2,则配置成功!

下面来说问题:

ssh在远程连接服务器执行命令的时候,经常会遇到环境变量的问题,如下:

如果出现上面的提示,则说明环境变量配置有问题。

先来说解决办法

问题解决!

这里就要说明bash有两种方式interactive + login shell模式和non-interactive + non-login shell模式

在服务器上执行命令,走的是interactive + login shell模式,而通过远程登录执行命令,走的是non-interactive + non-login shell模式。

这两种模式对于环境变量的读取是有区别的。

Shell首先会加载/etc/profile文件,然后再尝试依次去加载下列三个配置文件之一,一旦找到其中一个便不再接着寻找:

~/.bash_profile

~/.bash_login

~/.profile

所以当远程执行命令时,我们只需要让~/.bashrc文件中的环境变量与/etc/profile中的环境变量一致即可!

参考:

如何解决SSH远程执行命令找不到环境变量的问题


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/337166.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存