Я пытаюсь использовать этот (под учетной записью root) код в debian 7.
#!/bin/bash
cat > /root/.ssh/github.id_rsa << EOF
-----BEGIN RSA PRIVATE KEY-----
XYZ...
-----END RSA PRIVATE KEY-----
EOF
chmod 600 /root/.ssh/github.id_rsa
Когда я потом перехожу к этой папке, он говорит мне, что ее не существует. Я проверил и дважды проверил, но не могу понять, что делаю не так.
РЕДАКТИРОВАТЬ: Когда я запускаю команду вручную, кажется, что она работает! Но я пытаюсь запустить это как часть сценария оболочки.
В .ssh
папка, вероятно, не существовала / не существовала при первом запуске команды. Самый безопасный вариант - добавить команду перед cat
который проверяет / создает папку:
#!/bin/bash
mkdir -p /root/.ssh
chmod 700 /root/.ssh
cat > /root/.ssh/github.id_rsa << EOF
<some content>
EOF
chmod 600 /root/.ssh/github.id_rsa