我编写了一个shell脚本,在100多个系统上克隆Git存储库,我登录到每个系统。 我在托管它的系统上测试了脚本,但当我通过SSH从其他系统登录并运行相同的脚本时,它会给出“权限被拒绝”的错误,尽管我必须在相同的系统上进行克隆。我正在使用Ruby 1.8.7。
为了登录目的,我创建了另一个脚本文件,其中首先我登录并运行脚本。这是我的
在脚本中,它还可以通过使用
但仍然会出现错误,如下所示:
我该如何解决这个错误?我是不是漏掉了什么? ^M 在这里的含义是什么。
为了登录目的,我创建了另一个脚本文件,其中首先我登录并运行脚本。这是我的
login.sh
代码,这里的$1
是我传递给login.sh的端口参数。sshpass -p 1234 ssh -p $1 admin@localhost './my_update_steps.sh &'
在脚本中,它还可以通过使用
keygen
自动生成密钥,并进行更改以自动处理。以下是该代码:ssh-keygen -R myhostname
ssh-keyscan -H myhostname >> ~/.ssh/known_hosts
rm ~/.ssh/known_hosts.old
编辑 1
通过使用这个链接,我已经在.ssh/config
文件中做出了更改。
Host *
StrictHostKeyChecking no
但仍然会出现错误,如下所示:
Warning: Permanently added 'XXXX.XXXXX.XXXX.XXX' to the list of known hosts.^M
Permission denied (publickey).^M
fatal: The remote end hung up unexpectedly
我该如何解决这个错误?我是不是漏掉了什么? ^M 在这里的含义是什么。
users
用户没有适当的权限来访问~/.ssh/known_hosts
或者~/.myscript
。 - Stoic