ログイン時に公開鍵認証を必要としないルート、Sudo、sftpのみのユーザーアカウントを設定する方法を知りたいです。sftpのみのユーザーのホームディレクトリを設定する方法も知りたいです。上位レベルの他のディレクトリにアクセスできません。
Ubuntuを使用してホストマシンでsshサービスのセットアップを開始するのに役立つ最適なリソースは、 OpenSSHサーバー です。これにより、 SSHファイル転送プロトコル (セキュアファイル転送プロトコル、またはSFTP)を使用して、クライアントマシンからSSH経由でファイルにアクセス、転送、および管理できます。
OpenSSH server
を設定でき、ユーザーはssh
を使用して、ユーザー名とパスワードのみを使用してクライアントからホストのサーバーに接続できます。ただし、公開鍵認証が推奨されることに注意してください。「SSHサーバーをインストールする前に、 強力なパスワード があることを確認してください( パスワードをすべて無効にする )
ホストにOpenSSHサーバーをインストールするには:
Sudo apt-get install openssh-server
ホストに確実に接続できるように、ホストに静的IPアドレスを付与します。
nm-connection-editor
OpenSSHサーバーを設定するには 、「最初に、sshd_configファイルをホームディレクトリにコピーするか、/ etc/sshで読み取り専用コピーを作成してバックアップを作成します。」
Sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults
Sudo chmod a-w /etc/ssh/sshd_config.factory-defaults
「sshd_config
ファイルをバックアップしたら、次のようにテキストエディタで変更できます。」
Sudo -H gedit /etc/ssh/sshd_config
これらの変更を有効にするには、ホストでsshサービスを再起動する必要があります
Sudo service ssh restart
PermitRootLogin without-password
; PermitRootLogin no
をホストの/etc/ssh/sshd_config
に追加しますPort 22
; Port <new-port-number>
をホストの/etc/ssh/sshd_config
に追加しますListenAddress 192.168.0.10
を追加しますAllowUsers <username>@<IP_address_1> <username>@<IP_address_2>
またはAllowUsers <username>@111.222.333.*
をホストの/etc/ssh/sshd_config
に追加します~/.ssh/id_rsa.pub
の内容をホストの~/.ssh/authorized_keys
の新しい行として追加します。次に、PasswordAuthentication no
をホストの/etc/ssh/sshd_config
に追加しますSudo apt-get install ufw && Sudo ufw limit OpenSSH
sshd_config
ファイルでPasswordAuthentication
を有効にします句PasswordAuthentication
を含む行を見つけて、読み上げます。
PasswordAuthentication yes
新しいsshd_config
ファイルを保存してから、ホストのssh
サービスを再起動します。
Sudo service ssh restart
ホストのssh
サービスがsshd_config
ファイルでリッスンするポートに注意し、このポートを宛先とするTCP/UDPトラフィックをOpenSSHサーバーのIPアドレスに転送するようにルーターを設定します。
192.168.1.1
を指定すると、ルーターにログインしてポート転送を設定できます。 インターネット経由でSSH接続を受け入れるようにOpenSSHサーバーとルーターを構成しますか?ホストで<username>
としてSFTPシェルターミナルを開くには、クライアントでターミナルを開き、123.123.1.23
をホストのIPアドレスに置き換えて次のコマンドを入力します。
sftp <username>@123.123.1.23
ホストのOpenSSHサーバーがリッスンするポート番号を変更した場合は、次を実行します。
sftp -P <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
ホストで<username>
としてSSHシェルターミナルを開くには、クライアントでターミナルを開き、123.123.1.23
をホストのIPアドレスに置き換えて次のコマンドを入力します。
ssh <username>@123.123.1.23
ホストのOpenSSHサーバーがリッスンするポート番号を変更した場合は、次を実行します。
ssh -p <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
SSH
sshd_config
ファイルで指定されたポート番号14.04で:
ホスト上に適切なファイル許可を設定すると、ホスト上で作成する各標準ユーザー(Sudo特権なし)が/home/new_user
ディレクトリを所有しますが、ディレクトリ構造の残りの部分で制限されたアクセス許可を持ちます。
お役に立てば幸いです!
手順1:OpenSSHパッケージがインストールされていない場合はインストールする
Sudo apt-get install openssh-server
ステップ2:SFTPユーザー用に個別のグループを作成します。
Sudo addgroup ftpaccess
ステップ3:/etc/ssh/sshd_config
ファイルを編集し、次のように変更します。以下の行を見つけてコメントします。
#Subsystem sftp /usr/lib/openssh/sftp-server
これらの行をファイルの最後に追加します。
Subsystem sftp internal-sftp
Match group ftpaccess
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ステップ4:sshdサービスを再起動します。
Sudo service ssh restart
ステップ5:ftpaccessグループでユーザーを追加し、パスワードを作成します。
Sudo adduser paul --ingroup ftpaccess --Shell /usr/sbin/nologin
手順6:ホームディレクトリのアクセス許可を変更します。
Sudo chown root:root /home/paul
ステップ7:アップロード用のホーム内にディレクトリを作成し、グループで権限を変更します。
Sudo mkdir /home/paul/www
Sudo chown paul:ftpaccess /home/paul/www
それでおしまい 。
ユーザーへのアクセスを制限する
ここでは、ユーザーにファイル転送のみを許可し、ターミナルアクセスを無効にします。
そのために、構成ファイルの下部に次のコードを追加します。
$ Sudo nano /etc/ssh/sshd_config
これで、ファイルが開き、コードが貼り付けられます。
/etc/ssh/sshd_config
. . .
Match User filemg
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
filemg
をユーザー名に置き換えます。次に、ファイルを保存して閉じます。
それでおしまい。
Denyhosts は、「jtd」で言及されているものとは別の別のツールです。 SSHサーバーへの繰り返しの接続試行を自動的にブロックできます。 Ubuntuリポジトリにインストールできます。