子犬Linuxにsshdをインストールしました。誰かがsshdを起動する方法を教えてもらえますか?
答え1
Bionic Puppy Linuxでsshd(sshサーバー)を設定するのに役立つガイドラインがここで見つかりました。PuppyLinuxニュースレター - 2018年12月
すべての子犬にはデフォルトでSSHがインストールされている必要があります。名前にもかかわらず、これはユーザーが他のオペレーティングシステム(Raspberry Pi、Ubuntu、Anticsなど)を実行しているホストにログインできるようにするSSHのクライアント部分です。 /etc/でssh_configファイルを見つけてインストールを確認してください。 SSH。このファイルを編集する必要はありませんが、場合によってはサーバーとして実行するには、このファイルの権限を変更する必要があります。
他のLinuxディストリビューション(Ubuntuなど)が同じLAN上でSSHサーバーを実行している場合は、手順10に従ってPuppyがクライアントとして機能しているかどうかをテストできます。設定の一部としてローカルまたはホストデバイスで手順8を実行できるため、これは必要ありません。
SSHをサーバーとして実行するには、ホストセキュリティシェルへのアクセスを要求するクライアントをポート22(または別の方法で構成)でリッスンするSSHデーモンサーバーであるSSHDをインストールする必要があります。ホストソフトウェア Openssh-server は PPM からインストールできます。 LX Bionic 子犬バージョン 7.6p1 以前の Tahrpuppies バージョン 6.6.1p1 から始まります。
PPMからOpenssh-serverをインストールした後
/etc/ssh
。このフォルダには2つの設定ファイルssh_config
とsshd_config
moduli.confというファイルが必要です。基本
sshd_config
ファイルが次のようになる可能性がある場合いいえ存在する場合は、以下からスクリプトをダウンロードしてください。 https://github.com/openssh/openssh-portable/blob/master/sshd_configスクリプトを新しく生成されたテキストファイルまたは削除された既存のシェルスクリプトに貼り付け、sshdスクリプトで入力して名前を変更する必要があります。ファイルを編集またはアクセスできるようにするには、権限を変更する必要があります。
失敗した場合は、SSHDがインストールされている他のオペレーティングシステムのLinuxディストリビューションからファイルをコピーしてください。しかし、基本的なスクリプトから始めるのが最善です。
sshd_config
このファイルを編集してPuppy Linuxで実行する必要があります。経験的に、スクリプトの次の行のいくつかは、RHS(#)コメントに示されているように、他の行よりも重要に見えます。以下の行の左側にある「#」コメントタグをすべて削除し、以下のように編集します。オプションの行はデフォルト構成なので、コメントとして残ることができるはずです。
Port 22 # Optional, as this is the default AddressFamily any # Optional ? LoginGraceTime 2m # Optional PermitRootLogin yes # Critical for puppy linux PubkeyAuthentication no # Critical for initial use PasswordAuthentication yes # Critical for initial use PermitEmptyPasswords yes # Optional, otherwise use no ChallengeResponseAuthentication yes # Critical for initial use UsePAM no # Critical AllowTcpForwarding yes # Optional ? X11Forwarding yes # If one wishes to run GUI applications in the host computer X11DisplayOffset 10 # Recommended X11UseLocalhost yes # Optional ? PrintMotd no # Optional ? TCPKeepAlive yes # Optional ? Subsystem sftp /usr/lib/openssh/sftp-server # Optional ?
これで端末でSSHDサーバーを起動する準備が整いました
/etc/init.d/ssh start
。まだすべての機能が設定されていないため、エラーメッセージが表示されます。今はこれらの項目を無視してください。とにかく、SSHが実行されていることを確認できます。端末で実行すると、
netstat -tupan
ホストデバイスがリッスンしているすべてのポートのリストが表示されます。私たちが探している行はポート22を参照しています:Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6866/sshd
ポート22のみを一覧表示するより短い出力の場合は、次のようにします(
netstat -anplt | grep :22
空白を参照)。 SSHDが実行されている場合は、次のものが提供されます。tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6866/sshd
ポート22がリストされていない場合、SSHは実行されておらず、設定を確認する必要があることを意味します。
次のステップは、ファイルと
/etc/hosts.allow
設定/etc/hosts.deny
が正しいことを確認することです。明らかに、Puppy Linuxは「root」ユーザーとして実行されるため、オペレーティングシステムはセキュリティ対策としてほとんどのポートへのアクセスを自動的にブロックするように設定されています。# ALL: ALL
inを使用して削除するか、コメントを付けてhosts.deny
データをhosts.allow
次に変更します。ALL: LOCAL SSH: ALL
この調整は、MPDを使用した音楽ストリーミングなど、リモートアクセスを必要とする他のアプリケーションにも重要です。
ローカルSSHをテストするにはファイアウォールをオフにする必要があります。 SSHDは、別のクライアントデバイスを使用する前にlocalhostに接続できる必要があります。
次のコマンドを使用して端末で設定をテストします。
ssh -vvv root@localhost
またはssh -vvv [email protected]
(ここは127.0.0.1
ローカルホストのIPアドレスを使用して決定されますifconfig
)。スイッチをに設定すると、拡張され
-vvv
た詳細な出力が提供されるため、ジョブが停止した場所を確認できます。情報が少ない場合は、代わりに使用してください-v
。次のエラーが報告されるまでSSHDが実行され続ける可能性が高くなります。
debug1: SSH2_MSG_KEXINIT sent Read from socket failed: Connection reset by peer OR ssh_exchange_identification: read: Connection reset by peer OR ssh_exchange_identification: read: Closed by unknown
答え2
通常、スクリプトを使用してPuppyでサービスを開始できます/etc/init.d
。
$ sudo /etc/init.d/sshd start
すでに次のように実行されている場合:
$ netstat -anplt | grep :22
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
これにより、デーモンがポート 22 で実行中でリッスンしていることがわかります。この場合、あなたの質問は、このスレッドで説明されている次のタイトルの質問に関連する可能性があります。子犬のコンピュータにSSH経由で接続できません。接続が拒否されました。 。
Puppyを使用してファイアウォールが有効になっており、SSHアクセスを許可するにはルールを追加または無効にする必要があります。これを行うには、をiptables
使用してファイアウォールを操作する必要があります。たとえば、
$ sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT