2012-12-04 2 views
-2

10 개의 Linux 서버가 있습니다. 로그인 할 때마다 ssh 명령을 실행해야 할 때마다 서버에 연결하십시오. 원격 서버에 로그인하려면 하나의 쉘 스크립트가 필요합니다. 예를 들어 서버 인 경우 호스트 이름은 사용자가 user1 내가 단말기에 사용자 이름 user1을 줄 때 password , 그것은 자동으로 쉘 스크립트를 실행해야 통과하고 사용자에 대한 원격 서버에 로그인, testhost.com입니다 user1원격 서버에 자동 로그인 할 쉘 스크립트가 필요합니다.

+0

는 지금까지 아무것도 시도? – theAlse

+0

안녕하세요, 스택 오버플로를 환영합니다. 우리는 귀하의 문제를 기꺼이 도와 드리 겠지만, 다른 사람들이 당신을 위해 코드를 작성한다고 기대할 수는 없습니다. 오히려 질문을 편집하고 이미 시도한 것과 중단 된 부분을 알려주십시오. – Carsten

답변

0

당신이 할 수있는 매개 변수로 사용자 이름을 사용하고 그에 기반한 올바른 호스트로 ssh를 사용하는 스크립트를 작성하십시오. 빠른 예 :

if [ "$1" == "username" ]; then 
    ssh [email protected] 
fi 
if [ "$1" == "username2" ]; then 
... 

그러나 ssh 명령에는 암호 AFAIK를 제공하는 기본 제공 방법이 없습니다. 당신은 어쨌든 스크립트에 암호를 저장해서는 안됩니다. 이 문제를 해결할 수있는 방법은 ssh-keygen을 사용하여 키 쌍을 만들어 자동 인증을 설정하는 것입니다. Here은이를 설정하는 방법을 보여주는 링크입니다.

1

안녕하세요 저는이 질문이 오래된 것을 알고 있습니다. 그러나 여기에 @nick hartung의 링크를 따르는 방법이 있습니다. 10 개의 서버가 있기 때문에 각 서버를 'server1'또는 다른 이름으로 부를 수 있습니다. 당신이 좋아하지만 이름이 예 병이 이름에 대한 서버의 서버 1 '중 하나 또한 다른 뭔가 22,277 지금의 스크립트와 이름이 서버 1과 풋이 생성 예를 들어 22에서 포트를 변경해야 그것을

#!/bash/bin 
ssh [email protected] -p22277 

그런 다음 스크립트를 사용자 저장소로 이동하십시오.

$ sudo chmod 600 server1 
$ sudo mv server1 /usr/bin/ 

이제 u can ju 이

$ server1 

같은 원격 호스트 세인트 로그인하면 자동으로 로그인됩니다.

+0

/usr/bin에 스크립트를 저장하는 대신 로컬 디렉토리 구조의 어딘가에 저장하고 "server1"이라는 별칭을 실행하여 별칭을 만들 수 있습니다. –

관련 문제