MySQL에만 액세스할 수 있는 SSH 사용자를 생성하는 방법은 무엇입니까?

MySQL에만 액세스할 수 있는 SSH 사용자를 생성하는 방법은 무엇입니까?

원격 서버의 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/nologinSSH 는 원격 사용자로서 어떤 쉘이나 명령도 실행하지 않습니다.

관련 정보