gpt4 book ai didi

git - 如何使用 expect 和 git clone?

转载 作者:太空狗 更新时间:2023-10-29 13:54:05 24 4
gpt4 key购买 nike

我正在尝试使用 expect 在一行中输入密码从我的私有(private) git 存储库克隆。

我正在尝试类似的东西:

expect -c 'spawn git clone user@..*.*:/var/.../repository.git/; expect "(yes/no)?"; send "yes\n"; expect "password:"; send "my_password\n";interact'

但是,它不起作用。我究竟做错了什么?如何修复上面的命令行?

谢谢,Arshavdki Alexander

最佳答案

为什么不使用比密码更安全的东西来简化您的生活呢?

没有密码的 ssh key 将显着更安全并且根本不会提示。

如果它必须是 100% 独立的,那么考虑让脚本输出 SSH key ,使用一次,然后将其删除。 (这应该让您的安全状况保持不变:密码实际上在脚本中,这对您来说是可以接受的。)

# Output SSH key for no-password login. (Could use mktemp instead)
cat > /tmp/ssh_key.$$ <<EOT
-----BEGIN RSA PRIVATE KEY-----
blahblahblah
-----END RSA PRIVATE KEY-----
EOT

# Make a SSH wrapper to do the right thing
cat > /tmp/git_ssh.$$ <<EOT
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /tmp/ssh_key.$$ "$@"
EOT
chmod +x /tmp/git_ssh.$$
export GIT_SSH=/tmp/git_ssh.$$

# Done!
git clone user@host:path/to/repo

# Cleanup
rm -f /tmp/git_ssh.$$ /tmp/ssh_key.$$

是的,该脚本看起来很笨拙,但(模数错误)它是独立的,对于自动化非常有用。

关于git - 如何使用 expect 和 git clone?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6531241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com