我试图在变量中编写一个公共SSH密钥,并将其附加到authorized_keys SSH文件(~/.ssh/authorized_keys
)。问题是,它没有将它添加到新行。
我最终从cat ~/.ssh/authorized_keys
中得到如下内容,全部在一行上:
ssh-rsa ... original@hostssh-rsa ... root@anotherhost
壳牌
sudo echo $SSH_KEY >> $SSH_AUTHORIZED_KEYS_FILE
我怎样才能确保这不会破坏东西?
使用echo和-e选项(允许解释反斜杠转义)并在前面加上"n"要添加到文件中的内容。这首先向文件写入一个换行符,后面跟着变量的值。
echo -e "n$SSH_KEY" >> $SSH_AUTHORIZED_KEYS_FILE
请注意,在不带-n选项的情况下运行echo会自动在输出的末尾加上另一个换行符。如果你想避免这种情况,写:
echo -ne "n$SSH_KEY" >> $SSH_AUTHORIZED_KEYS_FILE