我想將腳本檔案放在其他機器根目錄上。這是我的終端命令
scp /var/www/html/script.sh [email protected]:script.sh
它要求輸入 root 密碼。我輸入了正確的 root 密碼,但它說
Permission denied, please try again.
有人可以幫忙嗎?
答案1
預設情況下,openssh 將拒絕任何 root 登入嘗試。然而,這可以透過/etc/ssh/sshd_config
在伺服器端進行修改來允許。
確保此行設定為 yes 並註解掉 no:
PermitRootLogin yes
然後重新載入你的 sshd。
然而,上述設定並不是一個好的安全實踐。而是使用 pubkey 登入。
配置行應該是:
PermitRootLogin without-password
。
在來源計算機上產生密鑰,按照嚮導操作:
ssh-keygen -t rsa
上面的命令將創建
.ssh/id_rsa.pub
並.ssh/id_rsa
包含公鑰和私鑰對。您需要將.ssh/id_rsa.pub
內容複製到目標計算機中/root/.ssh/authorized_keys
。如果目錄和文件不存在,則建立該目錄和文件,並確保authorized_keys的所有權是600
。現在嘗試 scp 嘗試,它會要求您輸入在步驟 1 中輸入的密碼。
答案2
假設您具有無密碼 sudo 存取權限,則以下操作應該有效:
$ echo "My test file" > test
$ scp test [email protected]:/tmp/
test
$ ssh [email protected] "sudo mv /tmp/test /"
$ ssh [email protected] "cat /test"
My test file
- 建立一個測試文件。
- 將檔案複製到暫存目錄。
- 將檔案移動到根目錄。
- 測試該檔案位於根目錄中。