web-dev-qa-db-ja.com

EC2 Ubuntuサーバーにパスワードでログインするようにsftpユーザーを設定するにはどうすればよいですか?

EC2インスタンスでUbuntuサーバーを実行しています。そのサーバーにログインするには、パスワードなしの証明書ファイルを使用します。

Vsftpdをインストールして構成し、/ bin/false sshターミナルを設定したユーザー(「testuser」と呼びましょう)を作成しました。これにより、sftp経由でのみ接続し、自宅のファイルにアップロード/アクセスできるようになります。ディレクトリ。

ただし、コンピュータからサーバーに接続しようとすると、

sftp testuser@my-ec2-server

私は得る

権限が拒否されました(公開鍵)。
接続が閉じられました

メッセージが表示されるため、ログインできません。

このユーザーのみの証明書要件を削除するにはどうすればよいですか(つまり、「ubuntu」ユーザーは引き続き証明書ファイルを使用してssh経由でログインする必要があります)。そのため、通常のsftpクライアントはユーザー名とパスワードを使用して接続できますか?

ありがとうございました。

PSマイクロインスタンスで64ビットの正規のUbu​​ntu Server 10.10公式AMIを使用しています。

14
Doron

あなたが望むことを達成するために、あなたは2つの異なることをする必要があります

  1. パスワードを受け入れるようにsshd構成を変更する

まず、これを行うのは悪い考えだと言います。パスワードをアクティブにするのではなく、ユーザーの証明書を生成したいのですが、そうしたい場合は、/etc/ssh/sshd_configを編集して、コメントを変更するか、コメントを外してください。 PasswordAuthentication yes。完了したら、sshdを再起動しますservice ssh restart

  1. ユーザーにsftpを使用してFTPのみを許可し、シェルは許可しない

Rsh(限定シェル)をインストールして、ユーザーシェルをそれに変更する必要があることを達成するには、chsh username

10
lynxman

許可するための段階的なガイドは次のとおりです。

  1. ユーザーbobの/ home/bob/uploadsへのSFTPアクセス
  2. SSHからボブをロックする
  3. キーではなくユーザー名/パスワードを使用します。

まず、/ etc/ssh/sshd_configファイルを編集します。

Sudo nano /etc/ssh/sshd

下にスクロールして変更します。

PasswordAuthentication yes

これを一番下に追加します:

Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no  

Ctrl-Xを押して終了し、保存します。

次に、ユーザーを追加します。

Sudo useradd bob
Sudo passwd bob

ここでグループを追加し、sshを無効にします。

Sudo groupadd sftpusers
Sudo usermod  -g sftpusers bob
Sudo usermod -s /usr/bin/rssh bob
Sudo usermod -d /home/bob bob

次に、権限を設定します。

Sudo chown root:root /home/bob/
Sudo chmod 755 /home/bob/
Sudo mkdir /home/bob/uploads
Sudo chown bob /home/bob/uploads

Sudo service sshd restart

これはすべて、rootユーザー(Amazon Linux AMIのec2-user)としてログインしているときです。

0
Rob Mulder