feat(bootstrap): добавить скрипт для установки пакетов и настройки окружения
feat(ssh): обновить конфигурацию SSH с новыми параметрами и удалить устаревшие записи
This commit is contained in:
@@ -7,6 +7,7 @@
|
|||||||
```bash
|
```bash
|
||||||
git clone <repository-url> ~/.dotfiles
|
git clone <repository-url> ~/.dotfiles
|
||||||
cd ~/.dotfiles
|
cd ~/.dotfiles
|
||||||
|
mkdir -p ~/.ssh/sockets
|
||||||
stow -t ~ */
|
stow -t ~ */
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,73 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
PACKAGES=("zsh" "tmux" "alacritty" "stow")
|
||||||
|
|
||||||
|
# Detect package manager and install.
|
||||||
|
detect_and_install() {
|
||||||
|
if command -v apt &>/dev/null; then
|
||||||
|
echo "Detected: apt (Debian/Ubuntu)"
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install -y "${PACKAGES[@]}"
|
||||||
|
elif command -v pacman &>/dev/null; then
|
||||||
|
echo "Detected: pacman (Arch)"
|
||||||
|
sudo pacman -Syu --noconfirm "${PACKAGES[@]}"
|
||||||
|
elif command -v dnf &>/dev/null; then
|
||||||
|
echo "Detected: dnf (Fedora/RHEL)"
|
||||||
|
sudo dnf install -y "${PACKAGES[@]}"
|
||||||
|
elif command -v zypper &>/dev/null; then
|
||||||
|
echo "Detected: zypper (openSUSE)"
|
||||||
|
sudo zypper install -y "${PACKAGES[@]}"
|
||||||
|
elif command -v brew &>/dev/null; then
|
||||||
|
echo "Detected: brew (macOS)"
|
||||||
|
brew install "${PACKAGES[@]}"
|
||||||
|
else
|
||||||
|
echo "Error: No supported package manager found"
|
||||||
|
echo "Please install: ${PACKAGES[*]}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check if all packages are already installed.
|
||||||
|
check_installed() {
|
||||||
|
local missing=()
|
||||||
|
for pkg in "${PACKAGES[@]}"; do
|
||||||
|
if ! command -v "$pkg" &>/dev/null; then
|
||||||
|
missing+=("$pkg")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ ${#missing[@]} -gt 0 ]]; then
|
||||||
|
echo "Missing packages: ${missing[*]}"
|
||||||
|
detect_and_install
|
||||||
|
else
|
||||||
|
echo "All required packages already installed."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
check_installed
|
||||||
|
|
||||||
|
# Basic setup for this dotfiles repo.
|
||||||
|
mkdir -p "$HOME/.ssh/sockets"
|
||||||
|
echo "Created ~/.ssh/sockets"
|
||||||
|
|
||||||
|
# Apply all stow packages.
|
||||||
|
cd "$(dirname "$0")"
|
||||||
|
echo "Running: stow -t $HOME */"
|
||||||
|
stow -t "$HOME" */
|
||||||
|
|
||||||
|
# Set zsh as default shell.
|
||||||
|
set_default_shell() {
|
||||||
|
local zsh_path
|
||||||
|
zsh_path=$(command -v zsh)
|
||||||
|
|
||||||
|
read -p "Set zsh as default shell? (y/n) " -n 1 -r
|
||||||
|
echo
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||||
|
chsh -s "$zsh_path"
|
||||||
|
echo "Default shell changed to: $zsh_path"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
set_default_shell
|
||||||
|
echo "Bootstrap complete!"
|
||||||
@@ -2,9 +2,25 @@
|
|||||||
|
|
||||||
Host *
|
Host *
|
||||||
# Переиспользование соединений (быстрее)
|
# Переиспользование соединений (быстрее)
|
||||||
# ControlMaster auto
|
ControlMaster auto
|
||||||
# ControlPath ~/.ssh/sockets/%r@%h:%p
|
ControlPath ~/.ssh/sockets/%C
|
||||||
# ControlPersist 10m
|
ControlPersist 10m
|
||||||
|
|
||||||
|
# Автоматически добавлять ключи в агент
|
||||||
|
AddKeysToAgent yes
|
||||||
|
|
||||||
|
# Использовать только явно заданные ключи
|
||||||
|
IdentitiesOnly yes
|
||||||
|
|
||||||
|
# Таймауты подключения
|
||||||
|
ConnectTimeout 10
|
||||||
|
ConnectionAttempts 2
|
||||||
|
|
||||||
|
# Обновлять ключи хоста при ротации
|
||||||
|
UpdateHostKeys yes
|
||||||
|
|
||||||
|
# Хэшировать known_hosts
|
||||||
|
HashKnownHosts yes
|
||||||
|
|
||||||
# Держать соединение живым
|
# Держать соединение живым
|
||||||
ServerAliveInterval 60
|
ServerAliveInterval 60
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
# 10 - Local network (direct IP)
|
|
||||||
|
|
||||||
# ПК
|
|
||||||
Host ada-pc
|
Host ada-pc
|
||||||
HostName 192.168.1.100
|
HostName 192.168.1.100
|
||||||
User ada
|
User ada
|
||||||
|
|||||||
@@ -1,48 +1,6 @@
|
|||||||
# 40 - Corporate (PAO IL)
|
|
||||||
|
|
||||||
Host ada-alt
|
|
||||||
HostName 127.0.0.1
|
|
||||||
User ada-alt
|
|
||||||
Port 3322
|
|
||||||
IdentityFile ~/.ssh/id_ed25519
|
|
||||||
StrictHostKeyChecking no
|
|
||||||
UserKnownHostsFile /dev/null
|
|
||||||
|
|
||||||
|
|
||||||
Host pam
|
|
||||||
HostName 10.1.194.230
|
|
||||||
User antipenkoda@MSK.LAN
|
|
||||||
Port 2244
|
|
||||||
ProxyJump ada-alt
|
|
||||||
StrictHostKeyChecking no
|
|
||||||
UserKnownHostsFile /dev/null
|
|
||||||
|
|
||||||
|
|
||||||
Host master-ans
|
|
||||||
HostName 10.1.194.160
|
|
||||||
User ada
|
|
||||||
IdentityFile /home/ada/.ssh/id_ed25519_ada
|
|
||||||
ProxyJump pam
|
|
||||||
LocalForward 9000 localhost:22
|
|
||||||
StrictHostKeyChecking no
|
|
||||||
UserKnownHostsFile /dev/null
|
|
||||||
|
|
||||||
Host master-ans-direct
|
|
||||||
HostName localhost
|
|
||||||
Port 9000
|
|
||||||
User ada
|
|
||||||
SetEnv TERM=xterm-256color
|
|
||||||
|
|
||||||
Host gitea
|
|
||||||
HostName 10.1.194.243
|
|
||||||
User gitea
|
|
||||||
IdentityFile ~/.ssh/id_ed25519_ada
|
|
||||||
ProxyJump pam
|
|
||||||
|
|
||||||
|
|
||||||
Host devel.mephi.ru
|
Host devel.mephi.ru
|
||||||
HostName devel.mephi.ru
|
HostName devel.mephi.ru
|
||||||
IdentityFile ~/.ssh/id_ed25519_ada
|
IdentityFile ~/.ssh/id_ed25519
|
||||||
KexAlgorithms +curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
|
KexAlgorithms +curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
|
||||||
|
|
||||||
Host github.com
|
Host github.com
|
||||||
|
|||||||
Reference in New Issue
Block a user