私は今日RSAを使用してsshを操作し、パスワードやログインなしでシステムユーザーアカウントを作成するなど、多くのことを学びました。私がしたいのは、ホームディレクトリを持つユーザーを作成することです。~/.ssh/必須とパスワード(初期SSH設定に必要)
しかし、正しく設定できないようです。
私は使用することを知っています
ssh-keygen
ssh-copy-id user@remotehost
RSAの場合、これは簡単です。
ユーザーを作成する方法を知っています。
useradd -r newuser
または
adduser newuser --system --shell=/bin/false
passwd newuser
passwd -d newuser
最終目標
シェルを持たないユーザーであるか、少なくともリモートシステムからログインすることはできませんが、まだ他のシステムでsshを使用してコマンドを実行できます。可能ですか?
理由/目標
これにより、ユーザーはUPSの電力が低いときにSSHを介して接続されている他のコンピュータをシャットダウンし、プライマリコンピュータをシャットダウンできます。 (統計を監視するために、USB経由で一度に1台のコンピュータしかUPSに接続できません。)
ユーザーはユーザー名upsを使用してSSH経由でログインしたくありませんが、パスワードなしでリモートホストにSSHでアクセスできるようにするにはUpsが必要です。
ベストアンサー1
暗号化フィールドを*
次に設定します!!
。/etc/shadow
例えば
# adduser tst
# passwd -l tst
Locking password for user tst.
passwd: Success
# grep tst /etc/passwd
tst:x:1000:1000::/home/tst:/bin/bash
# grep tst /etc/shadow
tst:!!:17030:0:99999:7:::
現在有効なパスワードがないため、ユーザーはログインできません。
次に、ファイルcommand="/thing/to/do"
の公開鍵の先頭にaを追加します。authorized_keys
例えば
# ls -l $PWD/authorized_keys
-rw-r--r-- 1 tst tst 431 Aug 17 17:54 /home/tst/.ssh/authorized_keys
# cat $PWD/authorized_keys
command="/bin/echo hello" ssh-rsa AAAAB3NzaC1yc2E....etcetc
これでキーは機能しますが、このキーが実行する唯一の作業はforceコマンドです。
$ ssh -i ~/.ssh/id_rsa tst@test1
hello
Connection to test1 closed.
他の操作を試みると失敗し、同じコマンドがまだ実行されます。
$ ssh -i ~/.ssh/id_rsa tst@test1 reboot
hello
$