Я пытаюсь использовать это (в соответствии с корневой учетной записью) код в 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