ssh远程连接服务器执行命令

ssh远程连接服务器执行命令,第1张

首先说一下使用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远程执行命令找不到环境变量的问题

SSH(secure shell)用于远程和服务器交互

Ubuntu Server默认安装了OpenSSH Server,可通过端口22连接

SSH客户端可以用用户名密码的方式连接服务器,也可以用密钥对的方式连接服务器。

可以使用SSH客户端工具PuTTY,windows10自带的SSH工具,或者VMWare的SSH工具连接服务器

1.在命令行用 用户名和密码连接

ssh username@serveraddress

2.SSH客户端还可以用 密码对 (公钥和私钥)连接

这里使用Win10自带的工具

生成密钥对

运行命令:ssh-keygen

添加公钥

打开生成的公钥文件id_rsa.pub,复制全部内容

使用SSH密码登录的方式登录Ubuntu服务器,在当前用户目录创建文件夹.ssh,进入.ssh文件夹并创建文件authorized_keys,粘贴从公钥复制的内容并保存文件

修改SSH配置

修改Ubuntu Server的文件:

/etc/ssh/sshd_config

将PubkeyAuthentication yes前面的注释去掉

运行命令重启sshd服务

sudo systemctl restart sshd

退出SSH连接,重新用私钥登录登录

ssh <username>@<serveraddress>-i <私钥路径>


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存