距离上一次更新该文章已经过了 749 天,文章所描述的內容可能已经发生变化,请留意。
免密操控(或者使用sshpass工具,看下面)
ps: 免密操控不可以逆向, 就是说可以一个主控方, 多个被控方, 但不可以一个被控方,多个主控方
以下以
gitlab-runner
账户远程免密登陆root@192.168.56.100
为例
- 先执行
su gitlab-runner
切换到gitlab-runner
账户 - 在你的主控端机器上使用 ssh-keygen命令创建公钥,使用
ssh-keygen -t rsa
来创建,程序会问你存放目录,如果不需要修改,直接回车几次即可 - 将
/.ssh目录下/.sshid_rsa.pub
文件拷贝到受控机器的`目录中,然后将文件内容导入到
~/.ssh/authorized_keys`文件
bash
1 | 主控方机器执行: |
在受控方机器设置权限:
~/.ssh
权限设置为700;~/.ssh/authorized_keys
权限设置为600之后在主控方机器 就具备免密登陆 远程机器的能力。
Linux登录ssh携带密码(sshpass方式)
1.安装 sshpass
bash
1 | apt-get/yum install sshpass -y |
2.携带密码登录
perl
1 | sshpass -p '12345678' ssh -p 22 -tt <用户>@<i> |
执行命令
执行单一命令
bash
1 | [root@vps ~]# ssh user@192.168.9.243 "pwd; ls; rm -f Cent* ;echo --------; ls" |
执行本地脚本 < ssh.sh
bash
1 | [root@vps ~]# cat ssh.sh |
执行带参数的命令/脚本
bash
1 | [root@vps ~]# cat ssh.sh |
问题
bash
1 | 当远程通过ssh登录主机时出现Pseudo-terminal will not be allocated because stdin is not a terminal. 错误 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小五的个人杂货铺!