어떻게 해야 할지 고민 중이에요.
내 목표는 ssh router1이 내 점프 호스트에 입력될 때 라우터로 ssh를 실행하는 동시에 Expect 스크립트를 실행하여 비밀번호 파일(ofcource는 나만 읽을 수 있음)에서 내 비밀번호를 채우는 것입니다. 암호화기는 누구도 얻을 수 없도록 보내야 합니다.
나는 예상 스크립트가 작동하도록 관리했지만 내 폴더에 (우리가 가지고 있는 라우터 수에 대해) 셀 수 없이 많은 예상 스크립트를 갖고 싶지 않습니다.
alias 명령을 사용하여 수행할 수 있다고 가정합니까? 나는 router1을 입력하면 해당 특정 라우터에 자동으로 SSH를 연결하도록 alias 명령을 설정했습니다.
(중복이라는 메시지를 받았는데 중복된 질문을 찾지 못해서 좀 더 자세히 설명하겠습니다. 회사에 라우터가 100개 있다고 가정하겠습니다. 이제 별칭을 만들었습니다. ' 따라서 프롬프트에 router1을 입력하면 ssh router1이 수행되며 해당 기능을 확장하고 비밀번호를 자동 완성하여 소중한 시간을 절약하려고 합니다.
즉, 별칭을 예상 스크립트(필요한 경우 bash 스크립트도 가능)와 결합하는 방법을 찾고 있는데 어떤 스크립팅에도 능숙하지 않습니다.
누군가가 도울 수 있기를 바랍니다 :)
답변1
기대하고 보내는 내용은 일반 텍스트로 전송되지만 SSH 연결은 암호화됩니다.
하지만 스크립트를 작성하고 거기에 비밀번호를 저장하는 대신 SSH 구성과 개인/공개 키 기반 인증을 사용해 보는 것은 어떨까요?
먼저, 자신만의 SSH 개인 키와 그에 따른 공개 스텁을 생성하세요. 그냥 실행
ssh-keygen
비밀번호(사용자 계정 비밀번호와 다를 수 있으며 로그인할 때마다 제공해야 함)를 제공하거나 제공하지 마십시오(키에 비밀번호가 없으므로 비밀번호를 묻는 메시지가 표시되지 않습니다). 키 쌍에 비밀번호를 할당하더라도 사용 중인 데스크탑 환경에 따라 로컬 키링 서비스가 인증을 캐시하고 자동으로 잠금 해제할 수 있습니다.
그런 다음 ~/.ssh/id_rsa.pub 파일을 원격 호스트에 복사합니다: ~/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub user@remotehost:~/
ssh user@remotehost
mkdir .ssh
cat id_rsa.pub >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
그리고 나가세요. 그런 다음 ~/.ssh/config를 편집하고 다음과 같은 항목을 추가하십시오.
Host router
Hostname 192.168.1.1
User routerusername
Port 22
첫 번째 호스트 라인에 지정된 이름은 DNS 이름일 필요는 없으며 별명이나 원하는 이름일 수 있습니다. 구성 파일은 X 전달 등과 같은 모든 명령줄 옵션을 지원합니다. 다른 호스트에 대해 다른 ID 파일을 가리킬 수도 있습니다...
이제 그냥 하세요
ssh router
자동으로 로그인됩니다.