为了方便描述,这里把测试服务器称之为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远程执行命令找不到环境变量的问题
远程桌面连接命令是什么方法/步骤
1.打开电脑,【Win+r】这是打开运行的'命令。到时候我们输入远程命令的时候会用上。
2.输入远程连接命令,mstsc,这样就可以快速连接。
3.输入用户名,密码,连接远程服务器。
4.下图是本地显示远程桌面的链接窗口。
5.链接不成功的原因:服务器用户名密码错误,服务器用户名密码都有大小写,重新输入一次即可。
6.链接不成功的原因:服务器过期,由于服务器大部分都是租用的,一般都会到时见要续费的。
7.链接不成功的原因:服务器重新装了系统,服务器重装系统后,远程登录密码大部分会改变,因此也会造成链接不成功。
在实际运用中在当前服务器执行命令后,需要在另一台服务器继续执行某些命令,分开去到另一台服务器执行也是比较麻烦的,因此整理下集中执行的方式
1、首先配置ssh免密操作
Linux 下实现SSH互信: https://www.jianshu.com/p/2456d98aa607
2、简单命令
ssh root@192.168.1.1 "cd /var/liblscd "
2.1 使用时注意,双引号必须有。若没加双引号,第二条及之后的命令会在本地执行
2.2 分号是将两条语句间隔开
2.3 单双引的区别:单引号不会解析值,是什么就传什么;双引号会解析值,将解析结果传过去
3、多条命令
ssh root@192.168.1.1<<reallssh
cd /var/lib/test
tar -zxvf api.com.tar.gz
......
exit
reallssh
3.1 命令写在 << reallssh(开始) 至 reallssh(结束) 之间
3.2 reallssh可自己定义为其他形式
3.3 在结束前加上exit退出远程
4、可能遇到的问题
问题:远程登录主机时出现Pseudo-terminal will not be allocated because stdin is not a terminal. 错误
解决方案:字面意思是伪终端将无法分配,因为标准输入不是终端。
所以需要增加-t -t参数来强制伪终端分配,即使标准输入不是终端。
to force pseudo-tty allocation even if stdin isn’t a terminal.
参考样例如下:
ssh -t -t user1@192.168.1.1 -p 22
--------------------------------------------------------------------------------
参考:https://blog.csdn.net/jinking01/article/details/84386769
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)