web-dev-qa-db-ja.com

LinuxからWindowsへのパスワードなしのssh

enter image description hereenter image description here

LinuxサーバーからパスワードなしでWindowsにログインしようとしています。すでにGitHubからOpenSSHをインストールしており、scpsshを実行できます。 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"

しかし、エラーが発生すると、catchmodを理解できません。

エラーの更新

'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をインストールする必要がありますか?はいの場合は、実装を手伝ってください。

どんな援助も大歓迎です。以下はエラーの画像です。

image of the error

1
Subash

LinuxからWindows/WindowsからLinuxへのパスワードなしのSSHを確立するために添付された一連の手順は次のとおりです。

注意:

  • 管理者権限でPowerShellコンソールを開き、そのコンソールでのみ以下に説明するすべてのPowerShellコマンドを実行します
  • SSH関連のコマンドをPowerShellコンソールから実行する場合は、システム環境変数(OpenSSHのインストールパスに応じてInside Path変数:C:\ Windows\System32\OpenSSH \またはC:\ Program Files\OpenSSH \)を設定する必要があります。

Windows Server 2019の場合:

  • Windowsシステムが最新であることを確認します(Microsoft for Windowsの更新プログラムをインストールする必要があります)
  • OpenSSH機能がWindowsにインストールされていることを確認してください。 OpenSSHサーバーとOpenSSHクライアント
  • アプリと機能に移動
  • [オプション機能の管理]を選択します
  • OpenSSHサーバーとOpenSSHクライアントがそこにリストされているはずです。リストされていない場合は、[機能の追加]をクリックしてインストールします。

Windows Server 2012および2016の場合:

  • OpenSSHビットを https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH (OpenSSH-Win64.Zip)からダウンロードします。
  • OpenSSHという名前のフォルダーにコンテンツを抽出します
  • ディレクトリをC:\ Program Files \内に配置します
  • https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH に記載されている手順4〜6に従います。
  • 管理者特権の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_

  • 上記の注に記載されているように、環境変数パスが設定されていることを確認してください。


Windows Server 2012/2016/2019の一般的な手順:

  • 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が可能になります。


Windowsホスト上の一般的な関連場所:

  • C:\ Windows\System32\OpenSSH \
  • C:\ Program Files\OpenSSH \
  • C:\ Users\Administrator.ssh \
  • C:\ ProgramData\ssh \

参照:

3
jainsha

私は個人的に http://www.freesshd.com/ を使用しているので簡単です。

このリンクからのいくつかのステップは次のとおりです。 https://shades-of-orange.com/post/Setting-up-freeSSHd-to-Connect-to-its-SFTP-Server-Using-SSH-Public-キー認証

  1. FreeSSHdのインスタンスを開き、[ユーザー]タブに移動します。ログインを追加または変更して、公開鍵(SSHのみ)認証を使用し、SFTPアクセスを有効にします

  2. [認証]タブに移動します。そこには、公開鍵を保管するフォルダーへのパスがあります。複数のサブフォルダーを計画している場合は、デフォルトのサブフォルダーの使用を検討してください

  3. Windowsエクスプローラーで公開鍵フォルダーを開き、手順1で設定したログインの名前で新しい空のテキストファイルを作成します。ファイル名がユーザーの名前と完全に同じであることを確認してください。ファイル拡張子を追加します。

  4. 前の手順で作成したファイルに公開鍵テキストを保存します。

2

エラーはそれをすべて言います。

多かれ少なかれ、あなたのsshサーバーは...まあ、sshサーバーを提供します。デフォルトで実行しようとしている「unix」スタイルまたはlinuxcoreutilsはありません。

このsshサーバーをcygwinに交換すると役立つ場合がありますが、文字通り行う必要があるのは、実行していることを理解することであり、Linuxコマンドが機能するとは限りません。

あなたはおそらくWindowsで猫を手に入れることができます gitにバンドルされているもの または [〜#〜] gow [〜#〜] のようなさまざまなネイティブパッケージを介して

権限モデルはおそらく動作が異なるため、ネイティブツールを使用して行う必要があります。

ある程度読む必要がありますが これは示唆しています "システム、管理者、所有者のみがアクセスできます"-および この投稿ICACLSを使用して適切な設定を行うことができることを示唆しています権限。

要点は、ツールを理解し、どこでも同じ環境を見つけることはできないことを理解する必要があるということです。

0
Journeyman Geek