add ssh-pubkey.ps1
authorAJ ONeal <coolaj86@gmail.com>
Tue, 30 Jun 2020 17:45:58 +0000 (11:45 -0600)
committerAJ ONeal <coolaj86@gmail.com>
Tue, 30 Jun 2020 17:45:58 +0000 (11:45 -0600)
ssh-pubkey/install.ps1 [new symlink]
ssh-utils/ssh-pubkey.ps1 [new file with mode: 0644]

diff --git a/ssh-pubkey/install.ps1 b/ssh-pubkey/install.ps1
new file mode 120000 (symlink)
index 0000000..f874a74
--- /dev/null
@@ -0,0 +1 @@
+../ssh-utils/ssh-pubkey.ps1
\ No newline at end of file
diff --git a/ssh-utils/ssh-pubkey.ps1 b/ssh-utils/ssh-pubkey.ps1
new file mode 100644 (file)
index 0000000..3af6a59
--- /dev/null
@@ -0,0 +1,46 @@
+#!/usr/bin/env pwsh
+
+# TODO: can we use some of this?
+# https://github.com/PowerShell/openssh-portable/blob/latestw_all/contrib/win32/openssh/FixUserFilePermissions.ps1
+
+if (!(Test-Path -Path "$Env:USERPROFILE/.ssh"))
+{
+    New-Item -Path "$Env:USERPROFILE/.ssh" -ItemType Directory
+    & icacls "$Env:USERPROFILE/.ssh" /inheritance:r
+    & icacls "$Env:USERPROFILE/.ssh" /grant:r "%username%":"(F)"
+}
+
+if (!(Test-Path -Path "$Env:USERPROFILE/.ssh/config"))
+{
+    New-Item -Path "$Env:USERPROFILE/.ssh/config" -ItemType "file" -Value ""
+    & icacls "$Env:USERPROFILE/.ssh/config" /inheritance:r
+    & icacls "$Env:USERPROFILE/.ssh/config" /grant:r "%username%":"(F)"
+}
+
+if (!(Test-Path -Path "$Env:USERPROFILE/.ssh/authorized_keys"))
+{
+    New-Item -Path "$Env:USERPROFILE/.ssh/authorized_keys" -ItemType "file" -Value ""
+    & icacls "$Env:USERPROFILE/.ssh/authorized_keys" /inheritance:r
+    & icacls "$Env:USERPROFILE/.ssh/authorized_keys" /grant:r "%username%":"(F)"
+}
+
+if (!(Test-Path -Path "$Env:USERPROFILE/.ssh/id_rsa"))
+{
+    & ssh-keygen -b 2048 -t rsa -f "$Env:USERPROFILE/.ssh/id_rsa" -q -N ""
+    echo ""
+}
+
+if (!(Test-Path -Path "$Env:USERPROFILE/.ssh/id_rsa.pub"))
+{
+    & ssh-keygen -y -f "$Env:USERPROFILE/.ssh/id_rsa" > "$Env:USERPROFILE/.ssh/id_rsa.pub"
+    echo ""
+}
+
+# TODO use the comment (if any) for the name of the file
+echo ""
+echo "~/Downloads/id_rsa.$Env:USERNAME.pub":
+echo ""
+#rm -f "$Env:USERPROFILE/Downloads/id_rsa.$Env:USERNAME.pub":
+Copy-Item -Path "$Env:USERPROFILE/.ssh/id_rsa.pub" -Destination "$Env:USERPROFILE/Downloads/id_rsa.$Env:USERNAME.pub"
+& type "$Env:USERPROFILE/Downloads/id_rsa.$Env:USERNAME.pub"
+echo ""