新しいサーバアカウントの設定

4297 ワード

サーバーの再設定は避けられません。ここではBandwagonの一例として簡単に記録してください。
ログイン&ユーザ追加
あちらにシステムが設置されたらIPアドレスとSSHポート番号、そしてrootユーザのパスワードが提供されます。
$ ssh root@ -p 
そしてrootパスワードを入力すればログインできます。
ログインして先に自分のユーザーを追加します。
# adduser 
まずパスワードを自由に入力して、ユーザー情報などは自分の状況で記入します。
このように作成されたユーザは、useraddのようにパラメータを追加する必要がないユーザディレクトリを有している(useraddは下の関数であり、使用を推奨しない)。/etc/skelの下の内容をコピーしたり、中に.bashrcのようなものを入れてもいいです。基本的な構成、例えばデフォルトshellは/etc/adduser.confに設定されています。デフォルトはbashです。
ユーザーを削除するのも簡単で、deluserを使って、これもuserdelの友好バージョンです。下のコマンドは、そのユーザのホームディレクトリを同時に削除します。(もっと多くの使い方をman deluserに行って、勉強してmanに行きます。最初はちょっと分かりませんが。)
# deluser --remove-home 
新しいユーザを追加
  • サド権限
  • を設定します。
  • SSHログイン&パスワードフリーログイン
  • SSHパスワード登録禁止
  • rootユーザSSHログイン禁止
  • サド権限を追加
    普通は直接にrootユーザーを持って使うのではなく、自分のユーザーにsudoの権限を追加します。キーは/etc/sudoersファイルにあります。
    # User privilege specification
    root    ALL=(ALL:ALL) ALL
    
    # Members of the admin group may gain root privileges
    %admin ALL=(ALL) ALL
    
    # Allow members of group sudo to execute any command
    %sudo   ALL=(ALL:ALL) ALL
    sudoグループがあるので、sudoグループに加入すればいいです。
    # adduser  sudo
    しかし、パスワードを入力するたびに面倒で、その後、ユーザSSHに登録されたパスワードをログインして封じるので、以下のように/etc/sudoersファイルを修正してvisudoを使う。
    %sudo   ALL=(ALL:ALL) NOPASSWD:ALL
    参考:
  • sudo-How can I add a new user as sudor using the command line?Ask Ubuntu
  • RootSudo-Community Help Wiki
  • ユーザーグループについては、ここをご覧ください。linux-Is there a command to list all Unix group names?Stock Overflow
  • SSHログイン
    SSHが登録されたらログインが必要な時にパスワードを入力しません。簡単に言えば、自分のxxx.pubの中の内容を~/.ssh/authorized_keysファイルに入れることです。例は以下の通りです
    $ mkdir /home/apps/.ssh
    $ echo  > /home/apps/.ssh/authorized_keys
    $ chown -R apps:apache /home/apps/.ssh
    $ chmod 700 /home/apps/.ssh
    $ chmod 600 /home/apps/.ssh/authorized_keys
    参考:
  • Flashk Gnicorn Supervisor Ngixプロジェクト展開のまとめ
  • Password-less logins The Flashk Mega-tootrial,Part XVII:Deployment on Linux(even on the Raspberry Pi!)-migelgrinberg.com
  • SSH登録のいくつかの制限
    このファイルには多くの関連する設定があります。以下にいくつかの関連するものを挙げます。
    RSAAuthentication yes
    PubkeyAuthentication yes
    #AuthorizedKeysFile     %h/.ssh/authorized_keys
    # To enable empty passwords, change to yes (NOT RECOMMENDED)
    PermitEmptyPasswords no
    PermitRootLogin no
    PasswordAuthentication no
    Port 29831
  • /etc/ssh/sshd_configRSAAuthenticationと関係がありますが、実際に使うのは後者です。KeyはもちろんPubkeyAuthenticationの下に置いて、RSAとDSAの両方ができるようです。
  • %h/.ssh/authorized_keysが空のパスワードの登録を許可しているかどうかは、ユーザが空のパスワードを持っている状態を見ることができますが、空のパスワードのユーザが使用できないアプリケーションがあります。詳しくは参考までに。ここではパスワードでログインしたくないので、noに設定します。
  • PermitEmptyPasswordsは、ノーのrootユーザ登録を禁止するように設定されている。
  • PermitRootLoginは、ユーザがパスワードでログインすることを禁止するように設定されている。
  • PasswordAuthenticationはSSHに登録されたPortで、一般的にはデフォルトではなく、少し安全性を向上させるために設定されています。
  • 設定を有効にするためにPortを覚えています。
    参考:
  • linux-Is disabling password login for SSH the same as deleting the password for all users?Server Fault
  • authentication-Shall I set“RSAAuthentication yes”in sshd_config if I use only ECDSA key?Information Security Stock Exchange
  • ユーザパスワードの処理
    # passwd -d 
    # passwd -l 
    前者はパスワードを削除して使用者が空のパスワードの状態にあるので、後者はユーザーのパスワードをロックして、パスワードの検証が必要な操作を正常に行うことができません。詳しくは参考までに
    参考:
  • $ sudo service ssh reload
  • linux-Is disabling password login for SSH the same as deleting the password for all users?Server Fault
  • 詳細設定
    zshに切り替える
    インストール先:man passwdOh My Zshに任せて設定します。
    $ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
    $ sudo chsh -s /bin/zsh 
    参考:
  • ロbbryrussell/oh-my-zsh
  • chsh