서버에 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
?