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