터미널에 SSH 자격 증명을 저장하는 방법 자격 증명을 저장 한 다음

저는 MacBook을 처음 사용하고 있으며 El Capitan을 운영하고 있습니다.

컴퓨터 사용을 PC에서 MacBook으로 마이그레이션하고 있습니다. 저는 PC에서 오랫동안 PuTTY와 SuperPuTTY를 사용하고 있습니다.

PC의 SuperPuTTY에서했던 것처럼 로그인 자격 증명을 만들어 MacBook Terminal의 웹 서버에 저장하려고합니다.

Mac 터미널에 웹 서버 로그인 자격 증명을 저장할 수 있습니까?

나의 전반적인 목표는 다음과 같습니다.

Mac 터미널에 다음 명령 줄 로그인 자격 증명을 저장 한 다음 일종의 단축 코드를 사용하여 터미널을 통해 웹 서버에 연결하는 쉬운 방법이 있는지 알고 싶습니다.

ssh -p 2200 root@123.456.789.012
Password: ****************************************************************

5 개의 다른 웹 서버를 관리하고 연결하므로 짧고 빠른 연결 방법으로 로그인 자격 증명을 정렬하고 구성하면 시간을 크게 절약 할 수 있습니다. 특히 비밀번호가 암호로 된 64 자 문자열이기 때문입니다.



답변

공개 키를 원격 시스템에 복사 할 수 있습니다. 공개 키 인증이 활성화되어 있고 공개 키가 원격 시스템에 존재 ssh하는 한 암호를 제공하지 않고도 시스템에 액세스 할 수 있습니다 .

먼저 다음과 같이 공개 / 개인 키 쌍을 생성해야합니다.

ssh-keygen -t rsa

지시를 따릅니다. 암호로 키를 보호 할 것인지 물으면 예라고 말합니다. 키를 암호로 보호하지 않는 것은 좋지 않습니다. 가끔 암호를 한 번만 입력하는 방법을 보여 드리겠습니다.

키 쌍이 이미 있으면 위의 단계를 건너 뛸 수 있습니다.

이제 ssh 키가 Mac에 존재한다고 가정하면 다음 ~/.ssh/id_rsa.pub을 실행하여 원격 컴퓨터에 설치할 수 있습니다.

cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

위에서 인용 한 특정 서버 예제의 경우 명령은 다음과 같습니다.

cat ~/.ssh/id_rsa.pub | ssh -p 2200 root@123.456.789.012 "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

root@123.456.789.012이 복사를 수행 하려면 비밀번호를 입력 해야하지만 마지막으로 비밀번호를 입력 해야합니다. 원격 서버 sshd가 공개-개인 키 인증을 수행하도록 설정 되었다고 가정하면 상자에 ssh를 입력하면 root계정 암호를 묻지 말고 대신 암호를 묻습니다 . 항상 입력 할 필요가없는 것을 만드는 방법에 대해 읽으십시오.

암호 대신 키를 사용하여 ssh하려는 모든 시스템에 대해 위의 과정을 반복하십시오.

참고하시기 바랍니다 누군가 당신의 보류 얻을 ~/.ssh/id_rsa파일로이 기계에 ssh를 수있는 root원격 시스템의 암호를 제공하지 않고. 키 파일을 암호로 보호하면 키 파일을 사용하기 위해 해당 키의 암호를 알아야합니다. 파일이 안전한지 확인하십시오. Mac에서 디스크 암호화를 사용하고 파일 및 ~/.ssh/디렉토리 에 대한 권한을 엄격하게 유지하십시오 .

매번 암호를 입력 할 필요없이 키를보다 쉽게 ​​사용할 수 있도록 OS X은 ssh-agent컴퓨터의 백그라운드에서 프로세스를 실행합니다 . 이 에이전트는 처음 사용할 때 키 쌍을 캐시하므로 비밀번호를 한 번만 입력하면됩니다. Mac을 잠자기 만하고 다시 시작하지 않으면 암호를 입력하지 않아도 오랜 시간이 걸릴 수 있습니다.

다음 ssh-agent을 실행 하여 모든 SSH 키를 사전 캐시 할 수 있습니다 .

ssh-add

이제 여러 계정 비밀번호가 아닌 비밀번호 만 기억하면 됩니다 . 나는 일반적으로 키 비밀번호를 1Password (가맹 없음)로 유지 하여 기억해야 할 비밀번호의 수를 더 단순화합니다. 그런 다음 1Password에서 찾은 다음 Mac에서 재시동 할 때 이상한 시간을 터미널에 잘라 붙여 넣어 달리기 ssh-agent를 다시 시작합니다.

이 질문에서 원격 컴퓨터에 키 복사를 Terminal.app 연결 관리 솔루션과 결합 하면 GUI 연결 경험을 위해 PuTTY에 매우 가까운 것이 있습니다.


서버 측에서 다음을 확인 /etc/ssh/sshd_config하고 확인하십시오.

PubkeyAuthentication yes

구성에서 활성화됩니다 (기본적으로 OpenSSH에서). 다음을 설정할 수도 있습니다.

PasswordAuthentication no

그 동안 암호 기반 인증이 비활성화되고 키가 컴퓨터에 액세스하는 유일한 방법이됩니다.

구성 파일을 변경 한 경우 시스템에서 sshd를 다시 시작해야합니다.


답변

sshpass를 사용하여 비밀번호를 저장할 수 있으며 모범 사례 (보안 문제)가 아닐 때마다 삽입 할 필요는 없습니다.

https://gist.github.com/arunoda/7790979 에서 mac OS x 설치 지침을 따르십시오.

sshpass가 설치되어있을 때 sshpass -p "YOUR_PASSWORD" ssh -o StrictHostKeyChecking=no root@123.456.789.012:2200

5 대의 웹 서버에 대해 동일한 작업을 수행하며 매번 비밀번호를 삽입 할 필요는 없습니다.


답변

공개 / 개인 키 항목 외에도 .ssh / config 파일은 별명, 서버 당 사용자 / 포트 기본값, ssh 옵션, 프록시 명령과 같은 ssh 명령을 쉽게 사용할 수 있도록 구성 할 수 있습니다.

기본적으로 ssh 명령에 넣을 수있는 복잡한 것은이 파일에도 있습니다.


답변

퍼티를 기본 응용 프로그램 번들로 Mac에 포팅 했으므로 기술 사용자가 아닌 경우 macports 또는 터미널이 필요하지 않습니다.

스크린 샷에 대한 자세한 내용은 여기에 있습니다 : http://www.wine-reviews.net/2016/08/putty-for-mac-os-x-now-available.html

건배,