Skip to content

Instantly share code, notes, and snippets.

@dumpvn
Last active March 5, 2022 10:55
Show Gist options
  • Save dumpvn/787d6f5ffc43084f09db15c9cb68a602 to your computer and use it in GitHub Desktop.
Save dumpvn/787d6f5ffc43084f09db15c9cb68a602 to your computer and use it in GitHub Desktop.
setup common tools for new pc
$RsaPrivateKey = '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'
$RsaPublicKey = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC51SiikZAWAstwoW66B1yuIvRTIe9Gma/RvIrG4hRkDmPYxH4LfOUYxMqPE8j32pPuwOAvNY/d7gbXzowgIj6V4tlTKgau36mbIQpfh2T8GZfD/d3ITPlXR2e3Hn88Cnv97nEC17UjkCMyPepkKU7jlDAqxxyb4l/JPSMRK7ook9/s48BY+7kufkT7PW6i9/XOyxy2RiAGA8+7Gv4Ew76U39d9nZ9frkR+8ZITVMUksn/VYa1MbnQgIP3y5xYyjuR8hYYoRvQ1B4JmaJyFUwIm46VWvXwylS/p7ayefSMO4cYCE2Y7qTMZ4TmGO6XkR2/DWPZ5tuz0rx4GmzflxLrN1xr75ztIvmb9la4RVEobWk82KYztUtpNHZMpWjtFS0Y8pN/edLtGeYv5lypQPQKV0LtyXEswOV/im7oZTYjIA0RNEdScIA64nwf3cuNDvhEMQQ8pvUsd/BZWAC0BAnem97KVYaGzy+3Q08hf4RfFIkX+dGsR/H50rYCArPoy4XM= phucnguyenv'
if (-not (test-path (join-path $env:USERPROFILE '.ssh') )) {
mkdir (join-path $env:USERPROFILE '.ssh')
}
if (-not (test-path env:\REPOS_HOME)) {
$env:REPOS_HOME = $psscriptroot
}
function Get-SecretKey {
param(
)
$sb = New-Object System.Text.StringBuilder
[System.Security.Cryptography.HashAlgorithm]::Create('SHA256').ComputeHash([System.Text.Encoding]::UTF8.GetBytes(
(Read-Host -Prompt 'Input your super secret password')
)) | ForEach-Object {
[Void]$sb.Append($_.ToString("x2"))
}
$sb.ToString().Substring(0, 24)
}
# Set-Content -Path (Join-Path $env:TMP 'tmp.reg') -Value `
# @'
# Windows Registry Editor Version 5.00
# [HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Open\Command]
# @="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -noLogo -ExecutionPolicy unrestricted -NoExit -Command \"Import-Module \"%1\" -Force \""
# '@
# Invoke-Item (Join-Path $env:TMP 'tmp.reg')
function Decrypt-MySecret {
[CmdletBinding()]
param (
[string]$Secret,
[string]$MyKey
)
try {
$data = [System.Convert]::FromBase64String($secret)
$csp = [System.Security.Cryptography.TripleDESCryptoServiceProvider]::new()
$csp.Key = ([System.Text.Encoding]::ASCII).GetBytes($MyKey);
$csp.Mode = [System.Security.Cryptography.CipherMode]::CBC
$csp.IV = [byte[]]::new(8)
$csp.Padding = [System.Security.Cryptography.PaddingMode]::PKCS7
([System.Text.Encoding]::ASCII).GetString(
$csp.CreateDecryptor().TransformFinalBlock($data, 0, $data.Length)
)
}
catch {
Write-Error $_.Exception.Message
}
finally {
$csp.Dispose()
}
}
$MyKey = Get-SecretKey
$MyPrivateRsa = Decrypt-MySecret -secret $RsaPrivateKey -MyKey $MyKey
Set-Content -Path (Join-Path $env:USERPROFILE '.ssh\phucnguyenv') -Value $MyPrivateRsa
Set-Content -Path (Join-Path $env:USERPROFILE '.ssh\phucnguyenv.pub') -Value $RsaPublicKey
Set-Content -Path (Join-Path $env:USERPROFILE '.ssh\config') -Value `
@'
Host bitbucket.org-phucnguyenv
HostName bitbucket.org
User git
IdentityFile ~/.ssh/phucnguyenv
IdentitiesOnly yes
'@
git config --global user.name 'phucnguyenv'
git config --global user.email 'phuc.nguyen@yahoo.com'
Set-Location $env:REPOS_HOME
if (-not (Test-Path .\dumpvn)) {
git clone git@bitbucket.org-phucnguyenv:phucnguyenv/dumpvn.git
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment