SSH-подключение

Подключение 

 Host: 62.84.181.155 или 22.claude.fitnessmama.md 

 

 Вход по паролю:  ssh <username>@<host> 

 Пример: 

 ssh olesya@62.84.181.155 

 

 Создание ssh-ключа 

 Примечание: в примерах имя ключа - claude_key.  Если вы назовёте ключ иначе, не забудьте учесть это в тех командах, где встречается " claude_key " или " claude_key.pub " 

 

 Windows 

 

 Запускаем Powershell  от имени администратора . 

 Создаём папку для ключей: 

 

 if (!(Test-Path $env:USERPROFILE\.ssh)) {

       Write-Host "Папка .ssh не найдена — создаём её..." -ForegroundColor Yellow

       New-Item -ItemType Directory -Path $env:USERPROFILE\.ssh

       Write-Host "Папка .ssh создана" -ForegroundColor Green

   } else {

       Write-Host "Папка .ssh уже существует" -ForegroundColor Green

   } 

 

 Создаём SSH-ключ:      

 

 $keyPath = "$env:USERPROFILE\.ssh\claude_key"

if (!(Test-Path $keyPath)) {

 Write-Host "Создаём новый SSH-ключ..." -ForegroundColor Yellow

 ssh-keygen -t ed25519 -f $keyPath -N ""

 Write-Host "SSH-ключ создан!" -ForegroundColor Green

} else {

 Write-Host "SSH-ключ уже существует: $keyPath" -ForegroundColor Green

} 

 В директории C:\Users\<ваш юзернейм>\.ssh появятся файлы claude_key и claude_key.pub 

 

 

 

 MacOS/Linux 

 

 Открываем терминал. 

 Создаем папку для ключей: 

 

 SSH_DIR="$HOME/.ssh"

if [ ! -d "$SSH_DIR" ]; then

 echo "Папка .ssh не найдена — создаём её..."

 mkdir -p "$SSH_DIR"

 chmod 700 "$SSH_DIR"

 echo "Папка .ssh создана"

else

 echo "Папка .ssh уже существует"

fi 

 

 Создаем   SSH-ключ: 

 

 KEY_PATH="$HOME/.ssh/claude_key"

if [ ! -f "$KEY_PATH" ]; then

 echo "Создаём новый SSH-ключ..."

 ssh-keygen -t ed25519 -f "$KEY_PATH"

 echo "SSH-ключ создан!"

else

 echo "SSH-ключ уже существует: $KEY_PATH"

fi 

 В директории /home/<ваш юзернейм>/.ssh появятся файлы claude_key и claude_key.pub 

 

 

 

 

 Копирование публичного ключа на сервер 

 Windows 

 У себя на компьютере в Powershell: 

 type $env:USERPROFILE\.ssh\claude_key.pub | ssh <user>@62.84.181.155 "cat >> ~/.ssh/authorized_keys" 

 

 MacOS/Linux 

 В терминале: 

 cat ~/.ssh/claude_key.pub | ssh <user>@62.84.181.155 "cat >> ~/.ssh/authorized_keys" 

 

 Настройка удобного алиаса 

 

 Windows 

 В Powershell от имени администратора: 

 # Путь к SSH-директории и config

$sshDir = "$env:USERPROFILE\.ssh"

$configPath = "$sshDir\config"

if (!(Test-Path $sshDir)) {

 New-Item -ItemType Directory -Path $sshDir | Out-Null

}

if (!(Test-Path $configPath)) {

 New-Item -ItemType File -Path $configPath | Out-Null

}

# Блок для добавления (ЗАМЕНИ <username>)

$block = @"

Host claude

 HostName 22.claude.fitnessmama.md

 User <username>

 IdentityFile ~/.ssh/claude_key

 IdentitiesOnly yes

"@

$content = Get-Content $configPath -Raw

if ($content -notmatch "Host claude") {

 Add-Content -Path $configPath -Value "`n$block"

 Write-Host "Конфигурация добавлена"

} else {

 Write-Host "Host claude уже есть в config"

}

icacls $configPath /inheritance:r | Out-Null

icacls $configPath /grant:r "$($env:USERNAME):(R,W)" | Out-Null 

   

 

 

 MacOS/Linux 

 В терминале: 

 # Путь

SSH_DIR="$HOME/.ssh"

CONFIG_FILE="$SSH_DIR/config"

mkdir -p "$SSH_DIR"

chmod 700 "$SSH_DIR"

touch "$CONFIG_FILE"

chmod 600 "$CONFIG_FILE"

# Добавляем блок (ЗАМЕНИ <username>)

if ! grep -q "Host claude" "$CONFIG_FILE"; then

cat >> "$CONFIG_FILE" <<EOF

Host claude

 HostName 22.claude.fitnessmama.md

 User <username>

 IdentityFile ~/.ssh/claude_key

 IdentitiesOnly yes

EOF

 echo "Конфигурация добавлена"

else

 echo "Host claude уже есть в config"

fi 

   

 

 После создания такого конфига можно не писать ssh <username>@<host> или scp <username>@<host>. 

 Достаточно ssh claude или scp claude. Пароль так же не будет нужен, если не выполняете команды на сервере с sudo