원격 서버의 MySQL 데이터베이스에 대한 SSH 터널을 설정하고 싶습니다. MySQL에 액세스하는 데 필요한 최소 권한(예: HeidiSQL 또는 Sequel Pro와 같은 데이터베이스 관리 애플리케이션 사용)만으로 SSH 사용자를 생성할 수 있습니까? 나는 사용자가 다른 것에 접근하는 것을 원하지 않습니다.
답변1
유효한 로그인 셸 없이 사용자를 추가할 수 있습니다.
# useradd -s /sbin/nologin dbuser
비밀번호를 설정하세요.
# passwd dbuser
또는 설정하지 않은 상태로 두고 SSH 키를 생성하세요.
(on local machine)
$ ssh-keygen
(on remote machine)
# su -s /bin/bash - dbuser
$ cat local_id_rsa.pub >>~/.ssh/authorized_keys
이 시점에서 SSH를 사용하여 터널을 생성할 수 있습니다.
ssh -TfnN -L localhost:<local_port>:localhost:<db_server_port> dbuser@remote_host
SSH 키를 사용하여 인증하면 자동으로 작동하며, 그렇지 않으면 비밀번호를 입력해야 합니다. ssh는 인증 후 즉시 백그라운드로 이동하여 명령 실행을 시도하지 않지만 터널은 열립니다. 로컬 데이터베이스 클라이언트에 "localhost" 및 <local_port> 값을 입력하면 작동합니다. 하지만:
$ ssh dbuser@remote_host
dbuser@remote_host's password:
Last login: Fri Oct 9 09:27:24 2015 from local_host
This account is currently not available.
Connection to remote_host closed.
/sbin/nologin
SSH 는 원격 사용자로서 어떤 쉘이나 명령도 실행하지 않습니다.