LinuxサーバーからパスワードなしでWindowsにログインしようとしています。すでにGitHubからOpenSSHをインストールしており、scp
とssh
を実行できます。 authorized_keys
をWindowsの場所にコピーしてみました。しかし、それはまだ機能していません。機能はパスワードではないはずですLinux環境からログイン/ウィンドウディレクトリを表示するためにsshまたはscpを実行するためのプロンプト。
私は以下のコマンドを試しました:
cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'
ssh [email protected] "chmod 700 .ssh; chmod 640 .ssh/authorized_keys"
しかし、エラーが発生すると、cat
とchmod
を理解できません。
エラーの更新
'cat' is not recognized as an internal or external command,
operable program or batch file.
'chmod' is not recognized as an internal or external command,
operable program or batch file.
Cygwinをインストールする必要がありますか?はいの場合は、実装を手伝ってください。
どんな援助も大歓迎です。以下はエラーの画像です。
LinuxからWindows/WindowsからLinuxへのパスワードなしのSSHを確立するために添付された一連の手順は次のとおりです。
管理者特権のPowerShellコンソールで、次を実行します。
_powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
_
Sshd.exeのファイアウォールを開き、以下を実行してインバウンドSSH接続を許可します。
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
次のコマンドを実行して、sshdとssh-agentを起動します(ホストキーがまだ存在しない場合は、%programdata%\ sshの下に自動的に生成されます)。
_net start sshd
_
_net start ssh-agent
_
上記の注に記載されているように、環境変数パスが設定されていることを確認してください。
PowerShellコマンドを実行します。
_Set-Service ssh-agent -StartupType Automatic
_
_Set-Service sshd -StartupType Automatic
_
_Get-Service -Name ssh-agent,sshd
_
これにより、両方のサービスのステータスが「実行中」と表示されます。
それらが実行されていない場合は、サービスを開いて開始します。 OpenSSHサーバーとOpenSSH認証エージェント。
Windowsホストで公開鍵と秘密鍵のペアを生成するためのPowerShellコマンドを実行します。
_ssh-keygen.exe
_
プロンプトに従ってEnterキーを押すか、プロンプトが表示されたら「はい」を押します。これにより、Windowsホストの公開鍵と秘密鍵が生成されます。
次のコマンドを使用して、WindowsホストのパスC:\ ProgramData\ssh \にadministrators_authorized_keysという名前のファイル(拡張子なし)を作成します。
_New-Item -ItemType file administrators_authorized_keys
_
Linuxホストパス/root/.ssh/id_rsa.pubから公開鍵をコピーして、WindowsマシンのパスC:\ ProgramData\ssh\administrators_authorized_keysにあるファイルに追加します[これはLinuxからWindowsホストへのパスワードなしのSSH用です]
上記のパスにファイルid_rsa.pubが存在しない場合は、Linuxホストターミナルでコマンドssh-keygenを実行し、Enterキーを押すか、プロンプトが表示されたらyesを押して、Linuxホストで秘密鍵と公開鍵を生成します。 (一般的なプロンプトは、Windowsホストで発生したもののようになります。)
WindowsホストC:\ Users\Administrator.ssh\id_rsa.pubから公開鍵をコピーして、Linuxホストのパス/root/.ssh/authorized_keysにあるファイルに追加します[これは、WindowsからLinuxホストへのパスワードなしのSSH用です]
Certified_keysファイルがLinuxホストに存在しない場合は、次のファイルを作成します。
_touch authorized_keys
_(場所/root/.ssh/)
PowerShellコンソールで次のコマンドを実行します[権限設定の場合]。
_icacls C:\ProgramData\ssh\administrators_authorized_keys /remove "NT AUTHORITY\Authenticated Users"
_
_icacls C:\ProgramData\ssh\administrators_authorized_keys /inheritance:r
_
_Restart-Service -Name sshd, ssh-agent -Force
_
上記のすべての手順を正常に実行すると、LinuxとWindowsホストの間でパスワードなしのSSHが可能になります。
私は個人的に http://www.freesshd.com/ を使用しているので簡単です。
このリンクからのいくつかのステップは次のとおりです。 https://shades-of-orange.com/post/Setting-up-freeSSHd-to-Connect-to-its-SFTP-Server-Using-SSH-Public-キー認証
FreeSSHdのインスタンスを開き、[ユーザー]タブに移動します。ログインを追加または変更して、公開鍵(SSHのみ)認証を使用し、SFTPアクセスを有効にします
[認証]タブに移動します。そこには、公開鍵を保管するフォルダーへのパスがあります。複数のサブフォルダーを計画している場合は、デフォルトのサブフォルダーの使用を検討してください
Windowsエクスプローラーで公開鍵フォルダーを開き、手順1で設定したログインの名前で新しい空のテキストファイルを作成します。ファイル名がユーザーの名前と完全に同じであることを確認してください。ファイル拡張子を追加します。
前の手順で作成したファイルに公開鍵テキストを保存します。
エラーはそれをすべて言います。
多かれ少なかれ、あなたのsshサーバーは...まあ、sshサーバーを提供します。デフォルトで実行しようとしている「unix」スタイルまたはlinuxcoreutilsはありません。
このsshサーバーをcygwinに交換すると役立つ場合がありますが、文字通り行う必要があるのは、実行していることを理解することであり、Linuxコマンドが機能するとは限りません。
あなたはおそらくWindowsで猫を手に入れることができます gitにバンドルされているもの または [〜#〜] gow [〜#〜] のようなさまざまなネイティブパッケージを介して
権限モデルはおそらく動作が異なるため、ネイティブツールを使用して行う必要があります。
ある程度読む必要がありますが これは示唆しています "システム、管理者、所有者のみがアクセスできます"-および この投稿ICACLS
を使用して適切な設定を行うことができることを示唆しています権限。
要点は、ツールを理解し、どこでも同じ環境を見つけることはできないことを理解する必要があるということです。