Open your Windows Explorer to check if the ./ssh directory already exists in your pc. Following this path should direct you there: C:\Users\[your user name]\. ssh (replace [your user name] with your user name).
How do I get to .ssh folder?
In the find file window, press Command-Shift-G. It’ll ask you what folder to navigate to. Enter ~/. ssh and press return.
How do I find ssh files?
Checking for existing SSH keys
- Open .
- Enter ls -al ~/. ssh to see if existing SSH keys are present. …
- Check the directory listing to see if you already have a public SSH key. By default, the filenames of supported public keys for GitHub are one of the following. …
- Either generate a new SSH key or upload an existing key.
How do I find my SSH key Windows 10?
- open command prompt (cmd)
- enter ssh-keygen and press enter.
- press enter to all settings. now your key is saved in c:\Users\. ssh\id_rsa. pub.
- Open your git client and set it to use open SSH.
Where is SSH public key in Windows?
pub from the file name (in any instance). Remember id_rsa is the private key and id_rsa. pub is the public key. And that’s all there is to viewing your SSH public and private keys on Linux, macOS, and Windows.
Learn SSH In 6 Minutes — Beginners Guide to SSH Tutorial
Where do I find my SSH public key?
By default, the private key is stored in ~/. ssh/id_rsa and the public key is stored in ~/. ssh/id_rsa.
What is the .SSH directory?
1. The . ssh directory is not by default created below your home directory. When you call ssh somehost (replace ‘somehost’ by the name or IP of a host running sshd), the directory and the file . ssh/known_hosts will be created.
How do I open an ssh file in Windows?
Start the service and/or configure automatic start:
- Go to Control Panel > System and Security > Administrative Tools and open Services. …
- If you want the server to start automatically when your machine is started: Go to Action > Properties. …
- Start the OpenSSH SSH Server service by clicking the Start the service.
How do I create a .ssh file in Windows?
Generating an SSH key
- Open the PuTTYgen program.
- For Type of key to generate, select SSH-2 RSA.
- Click the Generate button.
- Move your mouse in the area below the progress bar. …
- Type a passphrase in the Key passphrase field. …
- Click the Save private key button to save the private key.
Where is ssh config file on Windows 10?
For Windows, the default installation folder is %systemdrive%\Windows\System32\openssh. The following command shows the current path setting, and adds the default OpenSSH installation folder to it.
How do I create a .ssh file?
Generate an SSH Key Pair
- Run the ssh-keygen command. You can use the -t option to specify the type of key to create. …
- The command prompts you to enter the path to the file in which you want to save the key. …
- The command prompts you to enter a passphrase. …
- When prompted, enter the passphrase again to confirm it.
How do I find my SSH server?
How to Connect via SSH
- Open the SSH terminal on your machine and run the following command: ssh your_username@host_ip_address. …
- Type in your password and hit Enter. …
- When you are connecting to a server for the very first time, it will ask you if you want to continue connecting.
Can I delete SSH folder?
You can remove them, but I would err on the side of caution and leave them alone as they won’t do any harm or introduce any vulnerabilities — without the ssh or sshd binaries installed on your system having the leftover host ssh fingerprints and any leftover flat-file (text) configuration data in the folder is not …
Where are public and private keys stored?
Keys and certificates are stored in keystores and truststores. Private keys and personal certificates are stored in keystores. Public keys and CA certificates are stored in truststores. A truststore is a keystore that by convention contains only trusted keys and certificates.
How do I copy my SSH key?
Procedure
- In a terminal window, enter the following command: ssh-keygen -t rsa.
- Follow the prompts to generate the key. You must provide a file name and a passphrase. A public and a private key are generated. …
- Copy the public key to each node computer, by using the following command: ssh-copy-id username @ node_name.
Can I delete .SSH file?
Sometimes you would need to remove a file or a folder from the system. To do so using SSH, you would need to execute the appropriate command – rm. This will match all files starting with ‘myFile’ and ending in ‘. txt’ and delete them.
How do I uninstall SSH?
Delete SSH Key
- SSH to your server.
- Edit ~/. ssh/authorized_keys.
- Remove the line containing your key.
- Save and exit.
What is SSH add command?
The ssh-add command prompts the user for a private key password and adds it to the list maintained by ssh-agent . Once you add a password to ssh-agent , you will not be prompted for it when using SSH or scp to connect to hosts with your public key.
How do I know if SSH is installed?
How to check if SSH is running on Linux?
- First Check if the process sshd is running: ps aux | grep sshd. …
- Second, check if the process sshd is listening on port 22: netstat -plant | grep :22.
How do I connect to a SSH server in Windows?
Windows operating systems
- Start PuTTY.
- In the Host Name (or IP address) text box, type the hostname or IP address of the server where your account is located.
- In the Port text box, type 7822. …
- Confirm that the Connection type radio button is set to SSH.
- Click Open.
How do I run SSH on Windows 10?
How to Use SSH Commands in Windows 10
- Open Command Prompt (or PowerShell) Press Start and then type “Command Prompt”. …
- Run the SSH command to view its usage guide. Command Prompt will return a full list of options and syntax for you to use as you require.
- Connect to your server via your Windows Open SSH client.
What is the SSH config file?
Your SSH config file allows you to define specific settings for each SSH host that makes connecting to that host far easier. By defining many of these common, or uncommon, properties within the file, it eliminates the need to remember this parameter set each and every time a connection is needed.
How configure SSH config in Windows?
2 Answers
- Go to the . ssh directory /c/Users/PC_USER_NAME/. ssh/ , click right mouse button and choose «Git Bash Here»
- Create a file named «config» with the following command:
How do I edit a config file in SSH?
To modify the configuration files:
- Log on to the Linux machine as «root» with a SSH client such as PuTTy.
- Back up the configuration file you would like to edit in /var/tmp with the command «cp». For example: # cp /etc/iscan/intscan.ini /var/tmp.
- Edit the file with vim: Open the file in vim with the command «vim».
How do I access SSH config?
The ssh program on a host receives its configuration from either the command line or from configuration files ~/. ssh/config and /etc/ssh/ssh_config . Command-line options take precedence over configuration files. The user-specific configuration file ~/.
Prerequisites
- Windows Subsystem for Linux (WSL) is installed
- For this example we will use the Ubuntu Linux distro/distribution.
- Visit this link to rocket academy to find out more about WSL
Step 1: Understand how to access Linux On Windows
Method 1: Using the file explorer
-
Type
\\wsl$\
into the file explorer. This will direct you to the location of the Ubuntu folder.
-
Navigate to your linux folder.
Ubuntu -> Home -> <LINUX USERNAME>
Method 2: Using the WSL terminal
# This command navigates to the linux folder
cd ~/
Enter fullscreen mode
Exit fullscreen mode
# This command lists the files that are in the linux folder
ls -a ~
Enter fullscreen mode
Exit fullscreen mode
Step 2: Create .ssh folder (this is where we’ll put the ssh key)
Notes: If this is your first time accessing this folder, you probably do not have a folder for ssh files and will have to create your own.
Method 1: Using the file explorer
- Create a folder in your linux folder and name it «.ssh»
- Done! Now you can put the key pairs in this folder
Method 2: Using the WSL terminal
# 1. Check if you have a .ssh folder. If you don't have an ssh folder it'll return "No such file or directory"
ls ~/.ssh
Enter fullscreen mode
Exit fullscreen mode
# 2. Create a folder called .ssh
mkdir ~/.ssh
Enter fullscreen mode
Exit fullscreen mode
# 3. Copy any key pairs you need into this folder
# Note: You have to be in the same directory as the file you want to copy
# syntax: cp <FILENAME> ~/.ssh
cp my-aws-ec2-keypair.pem ~/.ssh
Enter fullscreen mode
Exit fullscreen mode
SSH • Windows • Конфигурирование • OpenSSH • Компьютерные истории • Истории
Введение
Начиная с верcии 1803
, в Windows 10
доступны SSH
клиент и SSH
сервер, причём, SSH
клиент установлен и готов к использованию, как говорится, прямо из коробки, а SSH
сервер надо устанавливать, но делается это буквально в пару-тройку кликов мышкой[1]. Что это означает? С точки зрения клиента можно говорить о том, что сторонние программы, такие как PuTTY
, вроде как больше не нужны. С точки зрения сервера — не надо устанавливать никакие сторонние серверы, если есть решение интегрированное.
В работе что клиент, что сервер, практически не отличаются от того ПО, к которому я привык в Debian
. Но, как ни крути, есть некоторые отличия, и вот об одном из них попробую сейчас рассказать. Речь пойдет о подключении к SSH
серверу, работающему на Windows
, с клиента, в моем случае, работающего на Debian Jessie
, причем, без использования пароля, то есть, задействуя ключи.
На самом деле, начало процесса не отличается от стандартного: если у вас нет набора ключей, вам его надо сгенерировать, если есть — используйте существующий. Речь сейчас идёт о той машине, которая будет клиентом. И я уже как-то писал об этом, но на некоторых моментах всё-таки остановлюсь ещё раз: повторенье — мать ученья 😉.
Про генерацию ключей
Итак, если ключей нет и вы работаете на системе под управлением Linux
, то вот эта команда поможет вам их сгенерировать:
ssh-keygen -t rsa
Если же вы работаете под Windows
, то у вас есть несколько возможностей сгенерировать ключи:
- Если вы работаете под
Windows 10
и включили возможность использовать встроенныйSSH
клиент, то смело используйте командуssh-keygen
— должно сработать… 🙄😉 - Если вы работаете под
Windows 10
и включили возможность использовать WSL, то можете воспользоваться возможностями этой подсистемы, то есть, использовать в ней… всё ту же командуssh-keygen
. - Если вы работаете под
Windows 10
и у вас не установлен встроенныйSSH
клиент и не включена возможность использованияWSL
, или же у вас более ранняя версияWindows
, то придется использовать стороннее ПО, тот же PuTTY с его генераторомPuTTYgen
— для этого случая есть достаточно подробная документация.
Если пара ключей успешно сгенерирована, или уже была у вас, то необходимо «доставить» публичный ключ на сервер и там сделать его доступным для использования SSH
сервером. И вот тут то и начинаются отличия от обычного — для мира Linux
— процесса.
Доставка публичного ключа на сервер Linux
Что я делал, когда мне надо было «доставить» ключ на SSH
сервер, работающий на Linux
? Всё очень просто — запуск следующей команды на клиентской машине решал все вопросы:
ssh-copy-id user_name@server_name_or_ip
где user_name — имя пользователя, ключ которого передаётся на сервер, а server_name_or_ip — имя или адрес хоста с сервером SSH
, к которому есть желание подключаться без ввода пароля (от имени пользователя с ключом). Иногда команда не работала и приходилось явно указывать файл (при помощи параметра командной строки -i
), в котором хранился публичный ключ, но это, в большей степени, зависело от устройства, на котором выполнялась эта команда, вернее, от версии ОС, ну и от реализации и версии криптографического ПО, конечно.
Но, в случае, когда в качестве сервера выступает машина с Windows
, этот приём не прокатывает — ключ не передаётся на нужный хост и всё. Не знаю, эксперименты эти я проводил довольно давно, может, в новых версиях Windows
эту «особенность» исправили, а может и нет. В любом случае, тогда мне пришлось искать обходной путь.
Собственно, сам этот путь очевиден — раз не получается сделать передачу ключа автоматом, надо всё выполнить вручную. А для этого необходимо знать, где и как Windows
хранит публичные ключи, используемые SSH
сервером для аутентификации клиентов. К счастью, в документации Microsoft
есть необходимая информация и её надо просто использовать. Давайте её детально разберём, при том держа в уме, что документация предполагает работу с клиентской машины под управлением Windows
с заранее настроенным доступом по SSH
к необходимому серверу.
Создание каталога для хранения ключей
Итак, из документации становится очевидно, что Windows
хранит пользовательские ключи, используя тот же принцип, что и Linux
: на сервере в файле authorized_keys
в подкаталоге .ssh
домашнего каталога пользователя (а это, как правило, c:\Users\user_name
, где user_name — имя пользователя), от имени которого вы хотите работать в установившемся SSH
сеансе. Если этого каталога нет, его надо создать, для чего предлагается использовать команду:
ssh user_name@domain_name@host_name "mkdir C:\\users\\user_name\\.ssh\\"
где user_name — имя пользователя, domain_name — имя домена, в который входит пользователь (его можно опустить для локальных пользователей на удалённом сервере), host_name — имя или адрес хоста, к которому подключаемся. Приведённая мною команда несколько отличается от той, которая дана в документации, но следует помнить, что я работаю с клиентской машины под управлением Linux
.
Копирование публичного ключа
Далее, предлагается скопировать во вновь созданный каталог файл с публичным ключом пользователя, от имени которого вы работаете на клиентской машине при подключении к серверу по SSH
(команда слегка отличается от той, которая приведена в документации, так как я работаю с машины под управлением Debian
):
scp ~/.ssh/public_key_file_name.pub user_name@domain_name@host_name:C:\Users\user_name\.ssh\authorized_keys
где public_key_file_name.pub — имя файла публичного ключа, например, id_ed25519.pub
или id_rsa.pub
(далее в примерах я буду использовать для простоты id_rsa.pub
).
На этом моменте хотелось бы остановиться подробнее. Обычно вы работаете на своём компьютере (или виртуалке) под своим собственным пользователем. Когда вы подключаетесь к удалённой машине по SSH
, вы можете подключаться под именем своего текущего пользователя локальной машины, или использовать имя какого-либо пользователя удалённого компьютера, или же — доменное имя. Конечно, в любом случае на удалённом хосте должен существовать соответствующий пользователь (или разрешено использовать доменное имя), даже если его имя будет совпадать с именем пользователя, под которым вы работаете на своём локальном хосте. Так вот, совсем не обязательно, что вы единственный подключаетесь к удалённому хосту под определенным пользователем, вполне возможно, что с других хостов другие люди (или вы сами?) также подключаются по SSH
, используя ту же самую учётную запись.
Возможно то, что я написал выше, это «ужас-ужас» с точки зрения безопасности, но такая ситуация весьма вероятна в домашних и небольших офисных сетях (да и не только 🙁), в которых не сильно заморачиваются с администрированием. И вот в таких случаях, копировать файл со своим публичным ключом — плохая идея: вы просто затрёте существующий файл authorized_keys
с публичными ключами других пользователей (или ваших собственных ключей на других компьютерах — вряд ли вы переносите свою единственную пару ключей с хоста на хост 😉). Поэтому следует рассмотреть возможность добавлять свой ключ к соответствующему файлу на удалённом хосте.
Добавление публичного ключа
Естественно, возникает вопрос, как это можно сделать. И на этот вопрос существует множество ответов. Например, если у вас есть доступ к удалённому хосту по RDP
, то можно отредактировать на нём файл authorized_keys
с помощью того же notepad
-а, добавив содержимое своего файла с публичным ключом. Или же, можно скопировать свой файл с публичным ключом на нужный сервер и объединить его с существующим файлом, а затем — удалить (конечно, при этом у вас, вернее, у вашего пользователя на удалённом компьютере, должны быть права на редактирование файла authorized_keys
):
scp ~/.ssh/id_rsa.pub user_name@domain_name@host_name:C:/Users/user_name/.ssh/my_public_key_file_name.pub
ssh user_name@domain_name@host_name "type C:\\Users\\user_name\\.ssh\\my_public_key_file_name.pub >> C:\\Users\\user_name\\.ssh\\authorized_keys"
ssh user_name@domain_name@host_name "del /Q C:\\Users\\user_name\\.ssh\\my_public_key_file_name.pub"
Обратите внимание на использование символов ‘/’ в команде scp
и ‘\’ в командах ssh
— так как мы работаем на Debian
, то в команду scp
можно передать путь на хосте с Windows
с использованием нестандартного для Windows
разделителя ‘/’, а вот в команды, выполняемые при помощи ssh
на том же удалённом компьютере, следует передавать символы ‘\’,то есть, стандартный для Windows
разделитель ‘\’ с предшествующим символом ‘\’, так называемый «escaped backslash», иначе Windows
не найдёт нужные файлы.
Назначение прав доступа к файлу с публичными ключами
Вот мы и подошли к последнему шагу — предоставлению прав доступа к файлу authorized_keys
. Именно этим занимается команда:
ssh --% user_name@domain_name@host_name powershell -c $ConfirmPreference = 'None'; Repair-AuthorizedKeyPermission C:\Users\user_name\.ssh\authorized_keys
Основную смысловую нагрузку в этой составной команде несёт функция Repair-AuthorizedKeyPermission
из модуля OpenSSHUtils
для PowerShell
(да, именно PowerShell
используется в качестве командной оболочки в этот раз). Этот модуль надо устанавливать отдельно, например, так (выполнять эту команду надо, естественно, из PowerShell
):
Install-Module -Force OpenSSHUtils -Scope AllUsers
Так вот, когда я запустил эту команду, ответом мне стало сообщение об ошибке:
Совпадения для указанных условий поиска и имени пакета "OpenSSHUtils" не найдены.
Естествено, я начал разбираться в сложившейся ситуации, после чего, если честно, желание использовать этот модуль у меня стало исчезающе малым.
Суть в том, что Windows 10
предъявляет определённые требования к безопасности файла authorized_keys
(на самом деле, к безопасности публичных ключей). Причины, по которым это происходит, наверное, не надо объяснять. Так вот, в документации Microsoft
указывается, что при использовании Windows 10
доступ может быть предоставлен только администаторам и специальному пользователю SYSTEM
. Там же советуется использовать модуль OpenSSHUtils
, который должен оказать помощь при установке нужных прав. Собственно, при использовании предложенного в документации подхода я и наткнулся на ошибку. Но кроме документации от Microsoft
я нашёл довольно много информации о проблемах, вызванных использованием этого модуля. Если попробовать кратко изложить содержимое ответов на возникающие у пользователей вопросы и проблемы, то получится что-то типа:
«Не используйте этот модуль, он дополнительно предоставит права пользователю
sshd
, после чего у вас перестанут соблюдаться требования к безопасности публичных ключей.»
Вот честно, не знаю, так это, или нет, но проверять расхотелось, тем более, что совсем не трудно задать нужные права самостоятельно. После некоторого изучения вопроса — я не большой специалист в PowerShell
— получился вот такой вот набор команд[2] (я приведу их полностью, потом разберу для чего нужна каждая из них):
$acl = Get-Acl C:\Users\user_name\.ssh\authorized_keys
$acl.SetAccessRuleProtection($true, $false)
$adminsRule = New-Object system.security.accesscontrol.filesystemaccessrule("Администраторы","FullControl","Allow")
$sysRule = New-Object system.security.accesscontrol.filesystemaccessrule("SYSTEM","FullControl","Allow")
$acl.SetAccessRule($adminsRule)
$acl.SetAccessRule($sysRule)
Set-Acl -Path C:\Users\user_name\.ssh\authorized_keys -AclObject $acl
Теперь, как и обещал, небольшие пояснения по командам. Итак, для начала, при помощи cmdlet
-а Get-Acl получаем дескриптор безопасности, содержащий ACL
(Access Control List) нужного нам объекта файловой системы (параметр командной строки Path
можно опустить) и сохраняем результат в переменной $acl
. Далее, используя метод SetAccessRuleProtection полученного объекта, запрещаем наследование прав (true
в первом параметре) и отказываемся от сохранения унаследованных ранее прав (false
во втором параметре). Затем создаём два объекта, описывающих правила доступа к объектам файловой системы: один (сохраняется в переменной $adminsRule
) — для Администраторов, второй (сохраняется в переменной $sysRule
) — для специального пользователя SYSTEM
. Теперь, при помощи метода SetAccessRule, добавляем только что соданные ACL
к дескриптору безопасности нашего файла, хранящегося в переменной $acl
. После чего, всё, что нам остаётся сделать — применить полученный дескриптор, для чего используем cmdlet
Set-Acl.
Ну вот, теперь, когда мы выполнили все шаги, всё должно заработать. Но, в моём случае, не заработало. Очередная неудача заставила меня вновь полезть в документацию, что обогатило меня новыми знаниями. Рассказываю…
Публичные ключи для работы от имени пользователей администраторов
Причиной того, что при соединении с SSH
сервером мне, несмотря на все предыдущие мытарства, продолжало выводиться требование ввести пароль, было то, что я пытался подключиться под пользователем, который входил в группу локальных Администраторов. У Windows 10
в этом случае есть требование — публичные ключи должны храниться в файле %programdata%/ssh/administrators_authorized_keys
, то есть, обычно, в C:\ProgramData\ssh\administrators_authorized_keys
.
Что ж, для того, чтобы решить проблему, можно воспользоваться двумя путями. Первый путь — воспользоваться процедурой добавления публичного ключа, рассмотренной нами выше. Да-да, все эти шаги: копирование, добавление, предоставление прав, только применяем их не к authorized_keys
, а к administrators_authorized_keys
. Я напишу, на всякий случай, полную последовательность команд, чтобы удобно было воспользоваться, но не забудьте подставить свои значения для пользователя, домена и хоста.
scp ~/.ssh/id_rsa.pub user_name@domain_name@host_name:C:/Users/user_name/.ssh/my_public_key_file_name.pub
ssh user_name@domain_name@host_name "type C:\\Users\\user_name\\.ssh\\my_public_key_file_name.pub >> C:\\ProgramData\\ssh\\administrators_authorized_keys"
ssh user_name@domain_name@host_name "del /Q C:\\Users\\user_name\\.ssh\\my_public_key_file_name.pub"
$acl = Get-Acl C:\ProgramData\ssh\administrators_authorized_keys
$acl.SetAccessRuleProtection($true, $false)
$adminsRule = New-Object system.security.accesscontrol.filesystemaccessrule("Администраторы","FullControl","Allow")
$sysRule = New-Object system.security.accesscontrol.filesystemaccessrule("SYSTEM","FullControl","Allow")
$acl.SetAccessRule($adminsRule)
$acl.SetAccessRule($sysRule)
Set-Acl -Path C:\ProgramData\ssh\administrators_authorized_keys -AclObject $acl
Второй путь чуть более радикальный — изменить настройки SSH
сервиса. Настройки эти хранятся в файле %programdata%/ssh/sshd_config
. Как оказалось, именно там определяется, где должны храниться публичные ключи тех пользователей, которые подключаются к SSH
серверу от имени пользователей, входящих в группу администраторов. Вот, собственно, эти строки:
...
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
...
Так вот, эти строки надо закомментировать или удалить, после чего SSH
сервер надо перезапустить.
Какой путь использовать — решать вам. Я же, пожалуй, закончу — пост получился и так слишком длинным…
-
На самом деле, в виде beta версий эти компоненты были доступны и раньше, но и установка и стабильность работы, были, что называется, не на высоте. ↩︎
-
Честно признаюсь, очень многое я подсмотрел в документации, например, как отключить наследование прав, или предоставить Администраторам полный контроль над файлом, и лишь немного адаптировал эти примеры к собственным нуждам. ↩︎
Subscribe to Записки на полях
Get the latest posts delivered right to your inbox
Great! Check your inbox and click the link to confirm your subscription.
Please enter a valid email address!
After OpenSSH installs, perform some additional configuration steps.
Ensure that the OpenSSH folder is included on the system path environment variable:
C:\Windows\System32\OpenSSH\
if installed as the Windows optional feature
C:\Program Files\OpenSSH\
if installed via the OpenSSH download
Set the two services to start automatically:
# PowerShell Admin
# Config services sshd and ssh-agent
# for start automatic when logon
Set-Service sshd -StartupType Automatic
Set-Service ssh-agent -StartupType Automatic
If you installed OpenSSH with the optional feature, then Windows creates a new firewall rule to allow inbound access of SSH over port 22. If you installed OpenSSH from the download, then create the firewall rule with this command:
# PowerShell Admin
# Add FireWall Rules for OpenSSH Server
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' `
-Enabled True -Direction Inbound -Protocol TCP `
-Action Allow -LocalPort 22
Start the sshd service to generate the SSH keys:
# PowerShell Admin
Start-Service sshd
The SSH keys and configuration file reside in C:\ProgramData\ssh
, which is a hidden folder. The default shell used by SSH is the Windows command shell. This needs to change to PowerShell:
# PowerShell Admin
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell `
-Value "C:\Program Files\PowerShell\6\pwsh.exe" -PropertyType String -Force
Now, when you connect to the system over SSH, PowerShell Core will start and will be the default shell. You can also make the default shell Windows PowerShell if desired.
There’s a bug in OpenSSH on Windows. It doesn’t work with paths with a space, such as the path to the PowerShell Core executable! The workaround is to create a symbolic link that creates a path that OpenSSH can use:
# PowerShell Admin
New-Item -ItemType SymbolicLink -Path C:\pwsh -Target 'C:\Program Files\PowerShell\6'
In the sshd_config file, un-comment the following lines:
PubkeyAuthentication yes
PasswordAuthentication yes
Add this line before other subsystem lines:
Subsystem powershell C:\pwsh\pwsh.exe -sshs -NoLogo -NoProfile
This tells OpenSSH to run PowerShell Core.
Comment out the line:
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
After saving the changes to the sshd_config file, restart the services:
# PowerShell Admin
Restart-Service sshd
Start-Service ssh-agent
You need to restart the sshd service after any change to the config file.
В Windows 7 id_rsa и id_rsa.pub нужно положить в C:\Users\<username>\.ssh
Вот подробнее о «домашней директории» в разных системах — http://en.wikipedia.org/wiki/Home_directory.
После этого ключи будут подгружаться по умолчанию, как в Ubuntu (для директории ~/.ssh).
Как скопировать их на сервер VPS — https://blog.bullgare.com/2014/10/%D1%81%D0%BA%D0%BE%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-ssh-%D0%BA%D0%BB%D1%8E%D1%87-%D0%B8%D0%B7-%D0%BF%D0%BE%D0%B4-windows/