Download scripts/ssh-agent-autostart.sh from SZFSPC/apple: direct link, hf CLI and curl.
- Browser
- Download file 2.87 kB
-
https://huggingface.co/spaces/SZFSPC/apple/resolve/main/scripts/ssh-agent-autostart.sh
- Command line
-
hf download hf://spaces/SZFSPC/apple/scripts/ssh-agent-autostart.sh
-
curl -L -o ssh-agent-autostart.sh https://huggingface.co/spaces/SZFSPC/apple/resolve/main/scripts/ssh-agent-autostart.sh
2.87 kB
| # SSH Agent Auto-start Script | |
| # Automatically starts ssh-agent and adds SSH keys from /root/.ssh/ | |
| # This script should be sourced from .bashrc or .profile | |
| # Function to auto-start ssh-agent and add keys | |
| __auto_start_ssh_agent() { | |
| # Check if ssh-agent is already running | |
| if [ -n "$SSH_AGENT_PID" ] && kill -0 "$SSH_AGENT_PID" 2>/dev/null; then | |
| # ssh-agent is running, check if keys are loaded | |
| loaded_keys=$(ssh-add -l 2>/dev/null) | |
| if [ $? -eq 0 ] && [ -n "$loaded_keys" ]; then | |
| # Keys are already loaded | |
| return 0 | |
| fi | |
| fi | |
| # Check for existing ssh-agent environment | |
| if [ -f ~/.ssh-agent-env ]; then | |
| source ~/.ssh-agent-env > /dev/null 2>&1 | |
| if [ -n "$SSH_AGENT_PID" ] && kill -0 "$SSH_AGENT_PID" 2>/dev/null; then | |
| # Agent is running, check keys | |
| loaded_keys=$(ssh-add -l 2>/dev/null) | |
| if [ $? -eq 0 ] && [ -n "$loaded_keys" ]; then | |
| return 0 | |
| fi | |
| fi | |
| fi | |
| # Start new ssh-agent | |
| echo "Starting ssh-agent..." | |
| eval "$(ssh-agent -s)" > /dev/null 2>&1 | |
| # Save environment variables for reuse | |
| echo "export SSH_AGENT_PID=$SSH_AGENT_PID" > ~/.ssh-agent-env | |
| echo "export SSH_AUTH_SOCK=$SSH_AUTH_SOCK" >> ~/.ssh-agent-env | |
| # Add all private keys from /root/.ssh/ | |
| if [ -d /root/.ssh ]; then | |
| key_added=false | |
| for keyfile in /root/.ssh/id_*; do | |
| # Skip public keys (.pub) and known_hosts | |
| if [[ "$keyfile" == *.pub ]] || [[ "$keyfile" == *known_hosts* ]]; then | |
| continue | |
| fi | |
| # Check if it's a valid private key file | |
| if [ -f "$keyfile" ]; then | |
| # Check file permissions (should be 600) | |
| perms=$(stat -c %a "$keyfile" 2>/dev/null || stat -f %Lp "$keyfile" 2>/dev/null) | |
| if [ "$perms" != "600" ]; then | |
| echo "Warning: Fixing permissions for $keyfile" | |
| chmod 600 "$keyfile" | |
| fi | |
| # Try to add the key | |
| echo "Adding SSH key: $keyfile" | |
| if ssh-add "$keyfile" 2>/dev/null; then | |
| key_added=true | |
| echo "Successfully added: $(basename "$keyfile")" | |
| else | |
| echo "Note: Could not add $keyfile (may require passphrase)" | |
| fi | |
| fi | |
| done | |
| if [ "$key_added" = true ]; then | |
| echo "SSH agent started and keys loaded successfully." | |
| ssh-add -l | |
| else | |
| echo "No SSH keys were added. Place your private keys in /root/.ssh/" | |
| fi | |
| else | |
| echo "Warning: /root/.ssh/ directory does not exist" | |
| fi | |
| } | |
| # Run the auto-start function | |
| __auto_start_ssh_agent | |
| # Cleanup function name | |
| unset -f __auto_start_ssh_agent | |