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はリモートユーザーであり、どのシェルやコマンドも実行しません。

関連情報