サーバーにSSHとして接続するたびに、同じSSHキーを引き続き追加する必要があります。だから私はこれを行うスクリプトを持っていて、しばらくうまくいきました。ただし、サーバーは次のように文句を言います。
- You have too many files are open. Close some files or increase your per-process descriptor limit.
while executing
"spawn bash -c "ssh-add [...some key]""
フルスクリプト:
#!/usr/bin/expect -f
set key [lindex $argv 0]
set pass [lindex $argv 1]
spawn bash -c "ssh-add /path/to/.ssh/$key"
expect "passphrase"
send "$pass\n"
interact
私は何をすべきかわからず、何をすべきかわかりspawn
ません。ssh-add
を実行すると、ps -e
bashプロセスのみがあります。おそらく共有ホスティングサーバーだからでしょうか?spawn
ちゃんと使っていないようです。この問題を解決し、将来この問題を回避するにはどうすればよいですか?
ベストアンサー1
まず、開いているファイルの制限を確認してください。
$ ulimit -n
65536
値が小さすぎる場合、制限を増やすと問題が解決します。制限が次のような場合は、65536
スクリプトが何か怪しいことをしている可能性があります。
次に、現在開いているファイルを確認します。
lsof -u your_username
その後、制限に達するためにスクリプトが開く必要があるファイルの数を計算できます。
lsof -u your_username | wc -l
ところで。 SSHキーを手動で追加するよりも使いやすくないですかForwardAgent
?