私のプロジェクトでは、パッケージをリモートでインストールする必要があります。 debianでログインする必要がある場合は、次のように言います。
$ ssh root@remotehostname
root@remotehostname's password:
正常にログインします。
私はbuntに直接ログインしてログインしています
$ root@remotehostname
root@remotehostname's password:
エラーメッセージがスローされます
Permission denied, please try again.
この問題を解決するには?
buntuドキュメント は言う:
デフォルトでは、ルートアカウントのパスワードはUbuntuでロックされています
それはまた言います:
心に留めておいてください。相当数のUbuntuユーザーがLinuxを初めて使用します。どのOSにも学習曲線があり、多くの新しいユーザーがrootアカウントの有効化、rootとしてのログイン、システムファイルの所有権の変更によるショートカット。
それはなぜそれがこのように行われたのかについて詳細に話します。
Rootアカウントを有効にする:
Sudo -i
ルートアカウントを有効にする(つまり、パスワードを設定する)には、次のコマンドを使用します。
Sudo passwd root
ご自身の責任で使用してください!
Xにrootとしてログインすると、非常に深刻な問題が発生する可能性があります。特定のアクションを実行するためにrootアカウントが必要であると思われる場合は、最初に公式サポートチャネルを参照してください。より良い代替手段がないことを確認してください。
/etc/ssh/sshd_config
構成するかどうかPermitRootLogin yes
未満 # Authentication:
。 yes
でない場合は、rootとしてログインできません。
yes
に変更できます。
次に、sshサービスを再起動して変更を適用します:Sudo service sshd restart
rootアカウントを有効にしないでください。 rootアカウントにはパスワードを設定しないでください。
より良い方法は、パスワードではなく公開鍵認証を使用してrootログインを許可することです。 推論はDebianメーリングリストのアーカイブで説明されています。
/etc/ssh/sshd_config
を開き、PermitRootLogin
がyes
に設定されているかどうかを確認します。そうでない場合は、yesに設定し、ssh
をSudo service ssh restart
で再起動します。
ルートのホームに.ssh
ディレクトリが存在しない場合は作成し、厳密な権限があることを確認します。
Sudo -i mkdir -p .ssh
Sudo -i chmod 700 .ssh
ログインするシステムで公開鍵/秘密鍵のペアを作成します。
公開鍵を通常のユーザーアカウントにコピーします。
ルートの.ssh/authorized_keys
に公開鍵を追加し、ファイルに厳密な権限があることを確認します。
cat id_rsa.pub | Sudo -i tee -a .ssh/authorized_keys
Sudo -i chmod 600 .ssh/authorized_keys
この設定により、秘密鍵を使用してrootとしてログインできるはずです。
以前にroot
アカウントを有効にしたことがある場合は、ここで必ず無効にしてください。
Sudo passwd -l root
Rootのパスワードを設定することもできますが、これはお勧めできず、セキュリティ上のリスクが生じる可能性があります。ただし、Sudo資格情報を持つターゲットシステムにユーザーアカウントがある場合は、ユーザーとしてログインできます。
ssh user@remotehostname
user@remotehostname's password:
sudoを使用して必要な操作を行うか、推奨される方法でルートシェルを取得します。
user@remotehostname$ Sudo su
Password:
root@remotehostname#
その後、ハウスキーピングを行います。 「Sudo su」の代わりに、同等の「Sudo -i」または現在の環境を維持する「Sudo -s」を使用することもできます。
/ etc/sshd_configを次のように編集します。
Sudo /etc/sshd_config
PermitRootLoginを含む行を検索してAuthenticationセクションに移動し、コメントを外しますPermitRootLoginまたはset PermitRootLoginはい。または、次の行をファイルの最後に追加します。
PermitRootLogin yes
次に、sshデーモンを再起動します。
/etc/init.d/ssh restart
または
service ssh restart
linuxディストリビューションによって異なりますが、これでssh経由でrootアカウントでログインします警告:セキュリティ上の理由から、これはお勧めできません。あなたができることは、ssh経由で他のアカウントにログインし、ユーザーセッション内で次のことを行うことです:
Sudo command
または単に:
Sudo su
rootアカウントでセッションを続行するには
ssh -l user localhost "Sudo whoami"
戻り値:
root
限り:
リモートホストを使用すると、接続しているユーザーは、追加のパスワードを要求せずにSudoにアクセスできます。
ssh-copy-idが実行されているか、正しいキーがリモートホストにコピーされているため、ユーザーはsshを介してパスワードなしで再接続できます
違いは、コマンドを実行する前にSudoという単語が追加されたことだけです。
キーなどのセキュリティ問題がある場合は、expectという言語を見てください。expectスクリプトを使用すると、リモートホストに対してssh/telnetを実行し、それに応じてパスワードなどを送信できます。
Rootとしてログインするのに疲れたのは、AWS EC2を初めて使用したときであり、rootが存在することを知っていたので、rootで長い時間ログインしようとしました。ユーザー名ec2-user。
vi /etc/ssh/sshd_config
#PermitRootLogin without-password
認証の下:PermitRootLogin yes
service ssh restart
デフォルトでは、ルートアカウントのパスワードはUbuntuなどのDebianベースのシステムではロックされています。
root
アカウントユーザーに切り替え:
Sudo -i;
次に、rootアカウントのパスワードを設定します。
Sudo passwd;
Rootのパスワードを追加するだけでは不十分です。
着信ssh接続は、以下のように有効にする必要があります。
編集/etc/ssh/sshd_config
、次の行を見つけます:
PermitRootLogin without-password
単語を置き換えるだけwithout-password
with yes
、次の行のように:
PermitRootLogin yes
次に、SSHを再起動します。
Sudo service ssh restart;
最後にシステムを再起動します。
Sudo reboot;
できた!!!
/etc/ssh/sshd_config
ファイルを編集して、「PermitRootLogin forced-commands-only」という行を「PermitRootLogin without-password」に変更します。
「service sshd restart
」を使用してsshdサーバーを再起動します。
/root/.ssh/authorized_keys
ファイルを編集します。このファイルは1行のみである必要があります。 「echo」または「command…sleep 10;」で始まります。その後、「ssh-rsa [big long key]」が表示されます。行の先頭から「ssh-rsa」と表示されるまでテキストを削除します。
キーペアでrootを使用してマシンをSSHします