新しい仮想Ubuntuサーバーを作成したばかりで、本番用に強化中です。現在、rootアカウントを持っています。私は次のことをしたい:
jim
と呼びます)。 /home/
ディレクトリが必要です。jim
SSHアクセスを許可します。jim
からsu
へのルートを許可しますが、Sudo
操作は実行しません。私の問題は最初の2つの項目にあります。すでにuseradd
を見つけましたが、何らかの理由で、SSHで作成されたユーザーとしてログインできません。これを可能にするためにSSHdを破る必要がありますか?
(ルートとして)/etc/ssh/sshd_config
を編集します。次を追加します。
Port 1234
PermitRootLogin no
AllowUsers jim
Port 1234
は、SSHがポート1234でリッスンするようにします。1〜65535の未使用ポートを使用できます。rootのみが使用できる特権ポート(ポート1〜1024)を選択することをお勧めします。何らかの理由でSSHデーモンが機能しなくなった場合、不正なアプリケーションは接続を傍受できません。
PermitRootLogin
は、直接ルートログインを許可しません。
AllowUsers jim
は、ユーザーjim
がSSH経由でログインできるようにします。どこからでもログインする必要がない場合は、jimをIPアドレスに制限することにより、これをより安全にすることができます(実際のIPアドレスで1.2.3.4を置き換えます)。
AllowUsers [email protected]
構成ファイル/etc/ssh/sshd_config
への変更はすぐには適用されません。構成を再ロードするには、次を実行します。
Sudo service ssh reload
SSHは、ディレクトリとファイルのアクセス権について非常に慎重です。以下を確認してください:
公開鍵をauthorized_keysファイルにコピーします。
Sudo chown -R username:username /home/username/.ssh
Sudo chmod 0700 /home/username/.ssh
Sudo chmod 0600 /home/username/.ssh/authorized_keys
NO/etc/ssh/ssh_configにユーザーを追加する必要があります。
SSH(またはPAM)がログイン試行を拒否する理由の手がかりは/var/log/auth.log
にあります。 -v
オプションをssh clientとともに使用すると、追加の手がかりを見つけることができます。いくつかの一般的な状況、他の回答で言及されたもの:
man passwd
を参照、パスワードのリセットまたは/etc/shadow
の内容を確認してください)。/etc/ssh/sshd_config
は、ログインを許可しないように構成されています(DenyUsers
、AllowUsers
、PasswordAuthentication
、PubkeyAuthentication
、UsePAM
など。man sshd_config
を参照) 。/etc/shells
にリストされていません。/etc/ssh
、/home/jim/.ssh
、/home/jim/.ssh/*
など.また、新しいユーザーを追加するためにadduser(seraddの代わりに)を使用することをお勧めします。さまざまなデフォルトのアカウント設定についてもう少しわかりやすいです。
ユーザーがadmin
グループに属していない限り、ルートにSudoすることはできません。彼らがsを使用するには、rootパスワード(passwd root
)を設定する必要があります。その後、PermitRootLogin=no
で/etc/ssh/sshd_config
を設定することをお勧めします。
私は間違っている可能性がありますが、接続する前に常にサーバーデーモンをインストールする必要があります(少なくともデスクトップでは)デフォルトでsshがインストールされていますが、それは単なるクライアントです
このコマンドはサーバーをインストールします
Sudo apt-get install openssh-server
編集してポートを変更し、rootログインを停止できます
/etc/ssh/sshd_config
ただし、これにはサービスの再起動が必要です。
Sudo service ssh restart
パスワードを設定するまで、ジムはSSHアクセスできません。 rootとして実行:
grep -i "jim" /etc/shadow | awk -F':' '{ print $2 }'
このコマンドが「!」を返す場合文字を入力すると、このアカウントのログインは無効になります。 passwd jim
をrootとして実行すると、上記のgrepコマンドがjimのパスワードを表すハッシュ文字列を返す必要のある新しい確認済みのパスワード文字列の入力を求められます。
また、jimにデフォルトで設定されたログインシェルと、存在するホームディレクトリがあることを確認してください。
SSHサーバー設定の変更については、lekensteynの投稿に注意してください。
私の場合、アクセスを許可されたグループがあり、ユーザーはそのグループに属していませんでした。これで解決しました。
ユーザーjim
で上記の例を使用し、グループjim
が唯一のグループであると想定します(groups
としてログインしているときにjim
を発行して、自分が所属しているグループを見つけますの)。 /etc/ssh/sshd_config
ファイルにAllowGroups sshusers
エントリがあったため、jim
をsshusers
グループに追加する必要がありました。以下は、これを達成する方法です。
usermod -a -G sshusers jim
構成に応じてグループとユーザーを置き換えます。
@Lekensteyn私は評判がないので質問の答えにコメントを残すことができません-しかし、私は追加しようとしました
AllowUsers existingUser,newUser
/ etc/ssh/sshd_configファイルに追加すると、existingUserとnewUserの両方でsshができなくなりました。
PasswordAuthentication
がデフォルトで無効になっている場合があります。
/etc/ssh/sshd_config
を確認し、PasswordAuthentication
属性がyes
に設定されていることを確認してください。