Linux 操作另一台服务器
服务器信任
在运维场景中,如果需要在一台服务器操作另一台服务器,就需要目标服务器(下面称为 B 服务器)信任当前服务器(下面称为 A 服务器)。
-
在 A 服务器生成证书。
ssh-keygen -t rsa
一直回车结束。
会在
/root/.ssh
目录下生成id_rsa
和id_rs.pub
两个文件:id_rsa
为私钥。id_rs.pub
为公钥。
-
公钥拷贝到 B 服务器。
scp /root/.ssh/id_rsa.pub root@B:/root/
这里由于 B 服务器还没有信任 A 服务器,所以会提示输入密码。
-
登录 B 服务器,并将该文件追加到
/root/.ssh/authorized_keys
文件中。cat /root/id_rsa.pub >>/root/.ssh/authorized_keys
如果此时报
Operation not permitted
,说明authorized_keys
没有修改权限,可以进行如下操作:-
修改
authorized_keys
权限:chmod 600 /root/.ssh/authorized_keys
如果依然报
Operation not permitted
,有以下两种可能:-
当前用户权限不足,可以在命令前面加上
sudo
执行:sudo chmod 600 /root/.ssh/authorized_keys
-
如果以上命令依然报
Operation not permitted
,则可能是文件处于保护状态,执行如下命令解除:chattr -ia /root/.ssh/authorized_keys
如此再执行上诉操作即可。
-
-
服务器操作
上传文件
使用如下命令可以传输 A 服务器的文件到 B 服务器。
scp A文件路径 B账号@B地址:B路径
执行命令
可以在 A 服务器使用如下命令操作 B 服务器。
ssh -tt B账号@B地址 '在B上执行的命令'
天河有尽身作涯,星海无边前是岸。