리눅스 ssh
IT위키
더 많은 작업
- Open SSH 원격 로그인 클라이언트.
- 유닉스와 리눅스 모두에서 명령어와 옵션이 같음
- 경로 : /usr/bin/ssh
ssh [옵션] [주소]
- [옵션]
- -1 : ssh를 프로토콜 버전 1로 시도
- -2 : ssh를 프로토콜 버전 2로 시도
- -4 : IPv4 주소만 사용
- -6 : IPv6 주소만 사용
- -i 키파일 : 공개 키 인증에 쓸 개인 키 파일을 지정한다. 주지 않으면 ~/.ssh/id_rsa, id_ecdsa, id_ed25519 를 찾는다
- -p 포트 : 접속할 포트를 지정한다. 기본은 22
- -l 사용자 : 로그인할 사용자 이름. 사용자@호스트 로 써도 같다
- -X : X11 포워딩
- -L, -R : 로컬·원격 포트 포워딩
- -v : 접속 과정을 자세히 출력한다. 키 인증이 왜 실패하는지 볼 때 쓴다
비밀번호 대신 키 쌍으로 로그인한다.
- 클라이언트에서 ssh-keygen 으로 개인 키(~/.ssh/id_rsa)와 공개 키(~/.ssh/id_rsa.pub)를 만든다
- 공개 키를 서버 사용자의 ~/.ssh/authorized_keys 에 덧붙인다. ssh-copy-id 가 대신 해 준다
- ssh 로 접속하면 서버는 authorized_keys 의 공개 키로 클라이언트가 짝이 맞는 개인 키를 가졌는지 확인한다
- 서버 설정은 /etc/ssh/sshd_config 의 PubkeyAuthentication yes, AuthorizedKeysFile .ssh/authorized_keys
- ~/.ssh 는 700, authorized_keys 와 개인 키는 600 권한이어야 한다
- /lib/security 는 PAM 모듈이 있는 디렉터리로, 키 인증에 쓰는 파일이 아니다
접속 포트, 인증 방식 같은 SSH 서버(sshd) 쪽 설정은 /etc/ssh/sshd_config 에 둔다. 클라이언트가 ssh -p 2022 호스트 로 2022번 포트에 접속하게 하려면 서버의 이 파일에서 포트를 바꾸고 sshd 를 다시 시작한다.
# vi /etc/ssh/sshd_config Port 2022 # systemctl restart sshd
| 파일 | 역할 |
|---|---|
/etc/ssh/sshd_config |
서버 설정 파일. Port, PermitRootLogin, PasswordAuthentication, PubkeyAuthentication 등 |
/etc/ssh/ssh_config |
클라이언트 쪽 기본 설정 |
/etc/rc.d/init.d/sshd |
데몬을 시작·정지하는 스크립트. 설정을 담지 않는다 |
~/.ssh/authorized_keys |
사용자별 공개 키 목록(키 인증) |
/usr/libexec/openssh/sftp-server |
SFTP 하위 시스템 실행 파일 |
$ ssh [email protected] $ ssh -p 2222 -l user1 192.168.10.20 $ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] $ ssh -i ~/.ssh/id_rsa [email protected]