linux 在远程机器中删除/注解ssh键[重复]

gr8qqesn  于 2023-06-21  发布在  Linux
关注(0)|答案(1)|浏览(104)
    • 此问题已在此处有答案**:

Escape a string for a sed replace pattern(17回答)
2天前关闭。
我想删除/注解我的远程服务器中的一个ssh键。current node = node1 remote node = node2在节点1中,我有一个pub文件,需要从远程节点/home/cloud-user/. ssh/authorized_keys中删除pub文件的内容。已尝试使用sed命令,但不起作用。下面的命令在我的设置中尝试。
测试1
pub文件名= www.example.com(pub的内容包括空间)cluster.pub (content of pub includes space )

key=$(cat  /opt/key/cluster.pub)
ssh -i key.pem node2 "sed -i 's/$key/#$key/g'  /home/cloud-user/.ssh/authorized_keys"

错误消息

sed: -e expression #1, char 0: no previous regular expression

测试2
将www.example.com复制到node2:/tmp/cluster.pub into node2:/tmp/

ssh -i key.pem node2   "key= cat '/tmp/cluster_login.pub' ;sed -e 's/${key}/#${key}/'    /home/cloud-user/.ssh/authorized_keys"

错误消息

sed: -e expression #1, char 230: unknown option to `s'

看起来在远程shell中运行时,sed命令以不同的方法执行。

kognpnkq

kognpnkq1#

尝试了下面的选项,这是为我工作。

ssh node2 "sed -i '/$(echo "$var" | sed 's/[\/&]/\\&/g')/ s/^/#/' /home/cloud-user/.ssh/authorized_keys"

相关问题