我想将一个脚本文件放在其他机器的根目录下。这是我的终端命令
scp /var/www/html/script.sh [email protected]:script.sh
它要求输入 root 密码。我输入了正确的 root 密码,但它说
Permission denied, please try again.
有人可以帮忙吗?
答案1
默认情况下,openssh 将拒绝任何 root 登录尝试。但是,可以通过/etc/ssh/sshd_config
在服务器端进行修改来允许这样做。
确保此行设置为是并且否被注释掉:
PermitRootLogin yes
然后重新加载你的 sshd。
但是,上述设置并不是一个好的安全做法。请使用公钥登录。
配置行应该是:
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
- 创建一个测试文件。
- 将文件复制到临时目录。
- 将文件移动到根目录。
- 测试文件是否位于根目录。